Розыгрыш по номерам участников
Участники пронумерованы — комментарии под постом, заявки, билеты. Страница создаётся заранее, ссылка раздаётся участникам, итоги подводятся один раз и не переигрываются.
Создайте страницу розыгрыша
Заполните диапазон и условия, поделитесь ссылкой с участниками, а итоги подведите, когда придёт время.
Как это работает
Три шага и никаких споров
Шаг 1. Страница создаётся до розыгрыша. Вы указываете диапазон номеров и условия, получаете постоянную ссылку и публикуете её в посте с конкурсом. На этот момент победитель неизвестен никому, включая вас.
Шаг 2. Итоги подводятся один раз. Кнопка доступна только по вашей личной ссылке и срабатывает единожды. Можно назначить время — тогда результат определится сам при первом открытии страницы после него.
Шаг 3. Любой пересчитает. После итогов публикуется случайное зерно и формула. С тем же зерном и тем же диапазоном расчёт повторит кто угодно и получит те же номера.
Почему без списка
Номера вместо имён
Участники конкурса почти всегда уже пронумерованы: комментарии идут по порядку, заявки лежат строками в таблице, у билетов есть номера. Значит списка имён на сервере не нужно вовсе.
Это лучший из возможных вариантов по персональным данным: мы не храним ни имён, ни ссылок на профили, ни контактов. Только диапазон, условия, время и результат. Подменить номера невозможно — они были известны заранее.
Если участники не пронумерованы и у вас есть именно список, воспользуйтесь выбором победителя: там список фиксируется отпечатком, а показывать его на странице необязательно.
Просто получить случайное число без публикации — генератор случайных чисел.
Вопросы
Частые вопросы
Чем это лучше обычного генератора чисел?
Обычный генератор выдаёт число и всё: доказать, что вы не крутили его двадцать раз, невозможно. Здесь страница с диапазоном и условиями создаётся до розыгрыша и получает постоянный адрес, а итоги подводятся ровно один раз. Ссылку публикуют в посте с конкурсом заранее, и участники видят, что результат появился после, а не был выбран задним числом.
Какие данные участников попадают на сервер?
Никакие. Сохраняются только диапазон номеров, условия, время и результат. Списка имён здесь нет вообще: участники и так пронумерованы, а номера подменить невозможно. Это самый чистый по персональным данным способ провести конкурс.
Что значит «отложенное подведение итогов»?
Можно назначить дату и время: результат определится сам при первом открытии страницы после этого момента. Удобно, когда конкурс заканчивается ночью или вы просто не хотите быть у компьютера. Планировщик на хостинге для этого не нужен.
Как участник проверит, что номера выбраны честно?
После итогов публикуется случайное зерно. Для счётчика i считается HMAC-SHA256(i, зерно), первые восемь знаков дают число, значения из неполного хвоста диапазона отбрасываются, а остаток от деления на размер диапазона даёт номер. Повторив расчёт с тем же зерном, любой человек получит те же номера.
Зачем отбрасывать часть значений?
Иначе выпадали бы смещённые результаты. Диапазон почти никогда не делит 2³² нацело, и без отбраковки младшие номера получали бы чуть больше шансов. На конкурсе в полторы тысячи участников это уже заметный перекос, поэтому «хвост» мы отбрасываем и берём следующее значение.
Сколько хранится страница?
Год с момента создания. Диапазон, зерно, время и победители остаются неизменными всё это время — ссылку можно оставить в посте, и она не превратится в битую.
Дальше