Instead of a lottery, we should have an H1-B auction. There are a limited number of H1-B slots, and the companies that offer the highest salaries get them. In addition, whistle-blower protection with automatic Green cards for anyone who reports employer abuse, with prison sentences for the entire company C-suite if a company abuses this process.
We’ve discussed the auction before here. My sentiment is that it would cause all of the H1Bs to be concentrated in the Bay Area at a handful of companies.
However, it can be curbed with some rough (80/20) cost-of-living adjustments to the applications before they're all put together for ranking.
Even without that adjustment, I think the "bidding" system would probably represent a significant improvement over what we have now.