I'm sorry, but I really am not understanding all of that the post
What about this (sort of based on that)
Each ticket is given a number, which equals (100/(S+1))*P, where S=Number of tickets sold and P=place which the ticket was sold, so first sold is 1, second is 2...The +1 is in there so the lowest and highest numbers will be evenly spaced from 0 and 100
Then, the winner is the person whose number is closest to the number formed by combining the last two digits of the most recent block's hash. If the number was closer to zero or 100 than the lowest ticket number, the next block will be used (or else first and last tickets would be more likely to win)
In the example you linked to, the numbers would be:
20 nikto
40 boba
60 spork
80 azrael
And the last two digits of the block would be 7 and 2, making the number 72, so azrael would win
This seems like it would be fair to me