That's a good idea. How might I go about doing that? Shall I just use a boolean variable to say "if an IR light has been detected in this run-around on a previous LED, then ignore all following IR light until loop repeats"?
If the IR streams then it won't matter how long the bebounce is, the user could sit there holding the button down and eventually score a hit. So if that's the case, you'll need to use a method to detect when the user has taken their finger "off" the button, before allowing detection to resume.
A boolean can do the job. The moment it goes high, do an evaluation, the moment it goes low, look for it to go high again.