It's not unheard of. Instead of putting a hard limit and playing the random number generator game with peoples' lives, maybe approve visas on a case-by-case basis...?
To me that sounds like it would make the situation much worse than it already is. Instead of a lottery there would be a waiting list that is hundreds of thousands of entries long and backlogged for years. They'd have to sort by salary or something so that companies don't have to wait for years to hire highly qualified people