I feel like the NBA already made things interesting for teams that really lean into tanking. I mean last draft the Mavs got the #1 overall pick. I do think the idea of limiting how many picks you can get in the top 5 or 10 picks like MLB sounds like a good idea too.
Another option would be to limit salary cap to teams that are in the lottery a certain amount of times. I'm not sure teams would want to do this because teams want somewhere to dump their bad contracts.
I think there might be a bit more of a thing in terms of tanking because at the trade deadline etc more teams are in the playoffs than before having the playing games. More teams are wanting worthwhile players so some teams are willing to give them up either in trade or a buyout.
I've often said I don't blame teams for playing young players over vets at some point so they can see what they have in those young players. Does that sometimes seem egregious? Yes.
Ultimately in the NBA the incentive to get a top 5 pick is pretty high it's pretty difficult to keep tes from working to get one. In general other major sports drafts just don't compare except maybe in NFL for teams that need QBs but it feels like the bust factor is high too. To me the way to fight tanking is to continue building up the sport. We are seeing more and more ways to find good players that aren't top draft picks and sometimes even if those players aren't stars themselves they can be traded to get one. Add more developmental spots to rosters and continue to invest in the g-league.
Edit: Also it's interesting to read some of the creative possible solutions in this thread.