Случайность

Кубики, монеты, жеребьёвки и колесо фортуны — каждый результат берётся из энтропии вашей операционной системы или из зерна, которое вы выбираете, чтобы любой мог повторить розыгрыш и проверить его.

Числа и игры

3

Розыгрыши

3

Имена и команды

3

Выберите форму розыгрыша

Выбор в основном зависит от того, как результат должен выглядеть для людей, которые за ним наблюдают.

Число или набор чисел — генератор случайных чисел для заданного вами диапазона, лотерейные числа для пятнадцати игр с фиксированными правилами, кости, когда нужна запись костей и модификаторы, а не просто диапазон.

Один победитель из списка — выбор имени, когда нужен просто ответ, колесо фортуны, когда за процессом наблюдает аудитория и драматизм важен сам по себе.

Да или нет — подбрасывание монеты.

Все распределены по группам — генератор команд, который распределяет по кругу, так что 7 человек на 3 группы даёт 3/2/2, а не сваливает остаток в последнюю группу.

Игра, растянутая во времени — ведущий бинго, 75, 90 или 99 шаров, управляемых с одного экрана.

Проверка чужой жеребьёвки — верификатор жеребьёвок, единственный инструмент здесь, который ничего не генерирует.

Что делает эту категорию особенной

Любой сайт может выдать случайное число. Более сложная задача — выдать такое, которое скептически настроенный участник примет впоследствии, и это цепочка, проходящая через все инструменты здесь, а не функция какого-то одного из них.

Работает это так. Запустите розыгрыш с сидом — значением, которое вы выбираете сами, или которое подбирает и показывает вам инструмент. Сид делает розыгрыш воспроизводимым: любой, у кого есть сид и тот же список, получит тот же результат — каждый раз. Само по себе этого недостаточно, потому что организатор мог бы запускать розыгрыши с разными сидами, пока один не выпадет удобно, и опубликовать только его.

Поэтому у розыгрыша есть ещё и отпечаток списка, по которому он проводился. Публикация сида и отпечатка до розыгрыша связывает вас и со списком участников, и с методом. После этого кто угодно может вставить сертификат в верификатор, который пересчитает результат и проверит, что сид, список и итог согласуются друг с другом. Измените имя, добавьте позднюю заявку или подмените победителя — и отпечаток перестанет совпадать.

Это не доказывает, что организатор честен. Это доказывает, что именно этот розыгрыш, проведённый по именно этому списку, дал именно этот результат — а раньше это было невозможно проверить никому, кроме организатора.

Когда сид не нужен

Оставьте поле сида пустым, и розыгрыш будет использовать crypto.getRandomValues(): энтропию вашей операционной системы, а не воспроизводимую последовательность. Это правильный выбор для всего, где воспроизводимость была бы скорее недостатком, чем преимуществом, — выбор пароля, деление счёта или разрешение спора. Никому не нужно проверять, кто из вас моет посуду.

Почему розыгрыш в браузере лучше физического предмета

Настоящая монета слегка смещена тем, как отчеканены её стороны, и падает так, как начала полёт, немного чаще, чем в среднем. Дешёвый кубик ещё хуже: литые точки удаляют разное количество материала с каждой грани, поэтому грань с шестёркой чуть легче остальных. Ни то, ни другое смещение не имеет значения для настольной игры, и ни от того, ни от другого нельзя избавиться, действуя аккуратнее.

Розыгрыш, вычисленный из пула энтропии операционной системы, не наследует никакой физической асимметрии. Он не «так же хорош», как настоящая монета — с точки зрения честности он лучше.

Я был бы признателен, если бы вы поделились этими страницами с друзьями, сохранили их в закладках или ссылались на них. Спасибо! 🙏