So, MLS uses a unique system which is part of the reason I brought this up.
MLS gives players what they call DESIGNATED STATUS. Basically they are All Stars or are expected to play like All Stars. So, the league could determine which player deserve all star status based on a vote by the coaches. Top 30 players or so get that position. Then each team can only have a max of 2 of these players at any given moment. The MLS allows 3 players per team with designated player status.
Top 5 lottery picks could get a similar status, but I think you would over complicate things quickly that way.
The minute that you allow players to determine their destiny alone, you encourage kibitzing. So, if there are 30 coaches voting for all stars then there would be no way to have more than 2 top players in the league. You could extend it to 40 players if you want or reduce it to 15 players... any number of things. That's a technique that would force teams into more parity.
Another technique is a hard cap, but that might be difficult to negotiate as others have said.
Maybe a bone for the player's union would be to offer larger salaries for the NBADL so that we can keep local talent LOCAL. Allow teams to compete for some of their best players with contracts of up to $500,000 for a minor league team. It would keep guys with the dream from going to Europe and a team like the Jazz could develop Marcus Paige, Bolomboy, etc with purpose. I think that would be better for the league because the contract for Solomon Hill is outrageous. His one contract is worth the value of the entire DLeague team of the jazz (meaning team, management salaries, player salaries, and travel expenses). And Solomon Hill averaged less than most D-Leaguers would in the league.