Если кто-то считает, что время старта - настолько архиважная штука, предлагаю справедливую схему (правда, немного запутанную, а потому неудобную для внедрения).
1. При регистрации указывается приоритет различных интервалов. (например, 9-10 - 1й, 8-9 - 2й, 10-11 - 3й, остальные - 0й, как совсем ненужные).
2. Через некоторое время (через день) происходит жеребьевка мест в каждом интервале среди "первоприоритетчиков". Те, кто выиграли - те выиграли, кто проиграл - проходят на следующий этап, когда разыгрываются места "второго приоритета". И так далее.
3. Если кто-то пролетел мимо - что же, не повезло, остается ждать следующей жеребьевки, которая будет через 36 часов, когда сгорят неоплаченные заявки. Там будет повтор пункта 2, с участием тех, кто "пролетел" и тех, кто зарегистрировался после первой жеребьевки.
Да, и чтобы избежать регистрации лишних команд для повышения шансов, ввести привязку команды к номеру телефона.
---------------------
Схема справедливая, но я считаю, что усложнение - это лишнее :)