Let's make it an auction. Let the bids tell us which skills are in highest demand and use the proceeds for scholarships and training of citizens in those jobs. Think H1B fees funding computer science scholarships. And at least with an auction we'll bring in higher quality workers that will contribute more to our economy (relative to a random selection).
Second, the catch-22 on why brown people hating politicians can't solve the problem: To make companies prefer foreign workers less we have to protect those workers better. Make it easier for them to change jobs and harder to force them into long hours without pay.