Pattern Recogniser on FPGA
I would suggest a LFSR (Linear feedback shift register). This is a pseudo random number generator. See wikipedia for details about what a LFSR is.

The only thing you have to store is the initialization vector that has to be different for each game.

For instance:
You have two LFSR of 32 bits. (The LSB of each LFSR register are the output of the LFSR system). The combination of the LSB of each LFSR registers define the color to display (2bit defines 4 choices).
Every time a new note has to be played, you use the two previous LFRS registers content as the initialization vector. Thus the sequence is deterministic and only defined by the very first initialization vectors. You would have no limit except the overflow of the counter of the current note in the sequence. And also the LFSR is cyclic, but with a sufficiently large register, it could repeat after only a sequence of several millions... 

You don't have to save the sequence, when the player plays, you regenerate the sequence and verify that what the player is playing is identical to your sequence.

Last, but not least, LFSRs are very easy to implement in FPGAs.