With all due respect, I think many posters are missing the point. From
a cryptographic perspective, the problem is *easy*. The hard part is
the verifiable procedures, hardware, and software. That's why gross
physical randomness is so attractive to lotteries -- anyone can see (to
a first approximation, at least) that the mechanism is fair. But even
that isn't foolproof; a number of years ago, an insider at one state
lottery weighted some of the balls, to shift the odds in his favor.
Now -- how would you prevent that sort of thing in a bridge tournament?
Do you *really* know what code is running on your machine today?