Is there any way of making this circuit simpler?
I'd use a microcontroller and do all the logic in firmware.  Connect all 8 lines to a single port and read them simultaneously in a periodic interrupt.  The firmware looks for the port value being not FFh (assuming buttons are wired as pulldowns).  If so, it looks to see which button is pressed, declares that the winner, and locks out subsequent state changes for a while, a manual reset, all buttons up for some time, etc.

In the very unlikely event that two buttons are first found pressed in the same interrupt, use a random number generator to chose which one to declare the winner.  This means both buttons were pressed within a few &micro;s of each other.  This is several orders of magnitude faster than what human observers would consider a tie, so nobody is going to argue whichever one you pick.  The random number generator is for long term fairness.  Again, however, two buttons being pressed simulataneously to within a few &micro;s is a very very unlikely event.  Even if you deliberately tried to do that by hand 1000 times, I doubt you'd be able to make it happen even once.