Two must haves:
1) Incentives for winning - Everyone talks about the incentive for losing, this is obviously an issue but I think it is as equally as important that there are no incentives for winning. Even if the rewards for tanking are tiny and minute, there really is no reward for not tanking. The NBA can incentivize this on two fronts - players and franchises.
Players can be incentivized by money. I would be interesting to see a model where each team needs to allocate a certain amount of money that is incentive based. For example, what if 10% of a team's payroll must be tied to some winning related goal? This "bonus" doesn't necessarily have to count against the cap.
Franchises can also be incentivized by money, but also cap mechanics. Winning can be tied to an exception that is granted to teams who win more, again this doesn't have to count against the cap. Increasing the ability to spend (without tax penalty) could provide more incentive for a team to finish higher in the standings and gives a natural progression towards team building where winning is rewarded.
2) The lotto odds need complex and involve more factors - One of the worst things about tanking is feeling like you need to lose on any given night. The reason why this is a thing is because you can directly look at the standings and see the impact right away. If you based the lotto odds on more years, you wouldn't have that acute reaction to a certain loss....or at the very least it would be fractional compared to the current system. It's more tempting to bench Kessler out of the blue when you can see the standings and understand the impact immediately. But what if odds were based on the last X years.....It would be 1/X as important....you still benching Kessler? And are you benching him if both the players and teams get something advantageous for winning?
This would also prevent teams from doing a one off tank where they just decided to pack it in for one year. Being bad would still help their overall lotto odds, but it wouldn't have the direct and instantaneous impact it does now.
Additionally, I don't think you should be able to win the lotto more than once in a certain time. I think lotto odds should be dynamic and based on a long period of time and also the amount of "luck" you've had in recent years.
IMO, these are changes that aren't too difficult to implement and are also things that the players, league, and teams would be open to agreeing upon.