Nate Silver did a poll and he "picked" the best solution. It wouldn't happen in a million years, but it would eliminate tanking:
Every NBA team would "bet" on another team and get their spot in the draft. The worst team would get first choice, second worst would get second choice, etc. You would get the spot for where "your" team ended up. The only restriction is that you could not bet on yourself. For instance, this year, the Celtics would have had first choice as to who would be the worst team next year.
No team would tank, because they know that their draft pick is going to a rival. I suppose you could make the argument that a bad team would tank so they would get first choice the following year, but not only are you introducing a second degree of separation but you're also betting that the team you choose won't do the same.
Mike