The assumption is that money buys votes. It doesn't. It buys advertising on a lot of levels along with all the people who are needed to promote a given candidate. By requiring everybody to vote, candidates would have to spend even more money to be sure that they reach the half of the voting population that doesn't vote.
What we really need is to get rid of the winner-take-all for state electoral votes. Imagine you live in a county that regularly has a majority vote for one party but because a little more than half of the rest of the counties in the state regularly voted for the other party. Your votes no longer count because the electoral votes got flipped. What if this happens over and over? How represented would you feel?