Using a randomized algorithm doesn’t let you get away with making no assumption whatsoever about the distribution of inputs. You still have to make the assumption that your inputs don’t look like the output of your random number generator. This is not always going to be true.
In the first Computer Rock-Paper-Scissors programming competition (in which, in order to win, programs had to both maximally exploit a number of “weak”, predictable opponents and not be exploited themselves by the other entries), one of the “cheater” entries worked by figuring out the state of the random number generator and proceeded to make the choice that would beat the random number generator’s next “throw”. So you can’t always make the assumption that the environment can’t predict your random number generator.
(Another cheater entry used anthropic computing; it used the standard library routine “fork()” to turn the one currently running copy of the tournament program into three, made a different choice in each copy of the program, then killed the copies of the tournament program in which the cheater didn’t win. Video game players use a similar technique all the time: reload an old save whenever you make a bad decision.)
Using a randomized algorithm doesn’t let you get away with making no assumption whatsoever about the distribution of inputs. You still have to make the assumption that your inputs don’t look like the output of your random number generator. This is not always going to be true.
In the first Computer Rock-Paper-Scissors programming competition (in which, in order to win, programs had to both maximally exploit a number of “weak”, predictable opponents and not be exploited themselves by the other entries), one of the “cheater” entries worked by figuring out the state of the random number generator and proceeded to make the choice that would beat the random number generator’s next “throw”. So you can’t always make the assumption that the environment can’t predict your random number generator.
(Another cheater entry used anthropic computing; it used the standard library routine “fork()” to turn the one currently running copy of the tournament program into three, made a different choice in each copy of the program, then killed the copies of the tournament program in which the cheater didn’t win. Video game players use a similar technique all the time: reload an old save whenever you make a bad decision.)