I propose the following election system for Canada. In each riding, ballots cast are counted. A random candidate is selected with a distribution proportional to the number of votes for each candidate. The selected candidate wins the seat.
Random number generation can be done by having every candidate select a number between 1 and n (the number of votes cast). The selected numbers are summed modulo n, and the result is used to select the winner.
And yes, I think it is fair for the Marxist-Leninist Party to get one seat in Parliament once every 100 years.