You could draw long/short straws to generate bits but since the challenge limited the tools to mortal bodies any other guessing game would do.
One could put his hands behind his back with one hand palm open and the other hand in a fist. The other one then guesses which hand is open and him being right or wrong generates either a 1 or 0. Repeat N times for an N-bit binary number. Both players can influence their choice equally and also equally make assumptions about the other player's intentions when making their own choice.
This starts by assuming humans are bad at coming up with unbiased numbers but then requires them to do so. I don’t get how this could work with biased inputs.
You could just play rock paper scissors three times and use the results as bits for d6? Maybe dropping 111 and alternating who is 1?
Edit, I realize you’d have to drop 111 and 000 to get 6, not sure what I had in mind in the original, either way it balances. It’s also nice because I don’t think you can intentionally lose rock paper scissors.
Usually, commitment schemes are used for this: https://en.wikipedia.org/wiki/Commitment_scheme
(However, if the stakes are high enough, the party that learns the outcome first can choose to exit the protocol if they are unsatisfied with the result.)
It would be more interesting to look at how much this reduces bias based on numbers humans actually tend to generate.
BTW a "classic" method of generating random numbers is to look at the second hand of a watch mod n.
After a while both people will get tired or bored and start generating the same number over and over again. At which point the method breaks down.
If you have a coin: Heads and tails represent bits. Flip a coin three times and add up the result to emulate a six-sided dice roll. e.g., heads, heads, tails = 3. If you get 7, then try again.
This explanation with angles makes this seem more complicated than it is. Two adversaries think of two numbers 0-11. Both say one aloud, add the other person's number to the one that wasn't said, then subtract 12 if it's higher.
As a bonus, the other person doesn't know what you "rolled" unless you tell them, which was important for the game I was making.
> Assuming both parties can come up with unbiased random numbers ranging from
Oh shame I though you were going to solve that problem.
Another procedure based on a similar problem I worked on with a friend: you both pick positive integers a and b, then add them together to create c. Either sqrt(c) or sqrt(c+1) is irrational and the fractional digits provide your random numbers. If you need a new sequence, you take some digits from the current expansion and sqrt() them again.
Might not be unbiased, but good luck proving it.
Sounds like a bit more complicated odds-and-evens. Rather than mess with pi and circles, you could just cast 0-9 fingers and get mod 6 + 1.
> We can prove that in an ideal situation, the die roll will be fair. Assuming both parties can come up with unbiased random numbers ranging from [0;12)...
Doesn't that assumption remove the entire problem though? I thought the whole reason for the method was that people can't easily think of an unbiased random number.
Or put differently, if that's your starting point, what's stopping you from simply doing (A mod 6) + 1?