Oh, I think I might be able to see how this worked...
Are you outputting something along the lines of md5sum("Left-Left-Right")?
If so, it's a simple dictionary attack... the gambler computes the 15 possible different MD5sums in advance and then compares them to what displays.
(Accidentally edited away my previous answer to this)
It's not just left-left-right, but it also had a whole heap of random characters after that, and then hashes that total string.
Also, there are only 8 possible combos, not 15.