Случайные числа и честная жеребьёвка: как выбрать победителя
Розыгрыш призов среди подписчиков, распределение задач в команде, выбор доклада из двадцати заявок — везде нужен случайный выбор. И везде возникает один и тот же спор: «а точно ли случайно?». Человек — плохой источник случайности: мы избегаем одни числа и выбираем другие, а «подбросить монетку в уме» не получается в принципе. Поэтому честную жеребьёвку делают инструментом, а результат показывают всем участникам.
Что делает выбор случайным
Случайность — это про непредсказуемость до самого момента выбора. Обычный rand() в простой программе предсказуем: зная начальное значение, можно воспроизвести всю последовательность. Для серьёзной жеребьёвки используют криптографический источник случайности — тот же, что генерирует ключи шифрования. Предсказать его выход — значит сломать шифр, а это человечество пока не умеет.
Три сценария жеребьёвки
- выбрать одно число из диапазона — для розыгрыша по номерам;
- выбрать победителя из списка участников — каждый с равным шансом;
- вытянуть несколько уникальных номеров — лотерейный формат без повторов.
Все три сценария закрывает генератор случайных чисел: диапазон с опцией «без повторов», режим кубиков для игр и лотерейный розыгрыш уникальных чисел. Результат формируется в вашем браузере и виден сразу — записывайте его при участниках.
Как сделать жеребьёвку убедительной
- опубликуйте полный список участников ДО розыгрыша — чтобы никто не был добавлен задним числом;
- проводите выбор инструментом при свидетелях или на записи экрана;
- покажите сам выбор, а не только результат — источник случайности должен быть виден;
- зафиксируйте правило заранее: что считается победой, что происходит при отказе от приза.
Доверие к жеребьёвке строится на прозрачности процедуры, а случайный генератор — лишь честный арбитр внутри неё. Когда процедура открыта, спорить не о чем.