The problem isn't with the voting algorithm - it's with the voter pool. Voters must have skin-in-the-game (ie be responsible for their vote) in order to have responsible government.
This means that votes should be weighted according to taxes paid. People who pay no tax shouldn't be excluded, but the fact that they are not personally responsible for funding the government should be taken into account in their vote.