How about let voters make their choices through an election, but then the winner is chosen through lottery with a weighting towards how the voters voted? So if 40% voted for A and 60% voted for B, A would still win the lottery election 40% of the time.
This could help marginal candidates, since voters wouldn't feel like they're throwing away their votes... any vote COULD win the election.