As a side note, this does not directly address the problem proposed by Arrow's theorem, although it could easily be made to do so, but the post isn't so interesting in that context. It's more about how it interacts with a constituency system.
If you want a randomised solution to Arrow style preferential voting, the following is the best I currently know of:
1. If you have one candidate, stop. That candidate is elected.
2. If you have more than one candidate, pick a candidate at random. Call that candidate Pivot. Every candidate who the majority thinks is worse than Pivot drops out of the race. If there is no one the majority thinks are worse than Pivot, Pivot drops out.
3. Goto 1.
Edit: Err. Correction. That's an algorithm for selecting a single winner from Arrow style preferential voting. It's based on an only slightly more complicated one for giving you the full range though.
If you want a randomised solution to Arrow style preferential voting, the following is the best I currently know of:
1. If you have one candidate, stop. That candidate is elected.
2. If you have more than one candidate, pick a candidate at random. Call that candidate Pivot. Every candidate who the majority thinks is worse than Pivot drops out of the race. If there is no one the majority thinks are worse than Pivot, Pivot drops out.
3. Goto 1.
Edit: Err. Correction. That's an algorithm for selecting a single winner from Arrow style preferential voting. It's based on an only slightly more complicated one for giving you the full range though.