The USA has, as a society, decided it wants to limit the number of immigrants. (I say this as a non-American who has had work visas in the US before, and left). If you disagree with that idea, vote for politicians who will change things. But if we take it as given that the number of immigrants on H-1B should be limited, then the question is: how do we decide who gets them?
I contend that raising the salary minimum is better than lotteries. First, if you're going to limit the number of immigrants, you should be limiting it to the most talented rather than a random assortment of anyone at all that applies. Salary limits isn't a perfect fit for that, but it's a close approximation. Second, companies shouldn't be using immigration as a means to have cheap labor, given the laws around limited immigration. The H-1B isn't meant to be a means to lower the salary costs of a company, it's meant to bring the best talent to America.
Lastly, in a lottery with limited winners, small companies will always lose out. Why? Because companies with less integrity can and will abuse the lottery system by inundating them with applications, often for job positions that could be easily filled by Americans. These companies want H-1B employees that they can underpay and abuse.
Worth adding as well, if every H-1B holder is making $200k+, they're paying taxes on that huge salary too. This helps shut up those xenophobic types saying 'lazy immigrants don't pay their share'.
My argument isn't that it's a fix-all for every problem. But given the premise of limited immigration, I think lotteries are a terrible solution companies to salary-based sorting.