NumberGenerator

Генератор случайных чисел

Рандомайзер для любого диапазона: несколько чисел сразу, режим без повторов. Бесплатно, без регистрации, и ничего не покидает ваше устройство.

0 участников
Защищённый розыгрыш Результат выбирает и подписывает сервер — потом его нельзя подменить

Пробел — сгенерировать

Эта сессия

Считается в этом браузере, никуда не отправляется

Нажмите «Сгенерировать» — здесь появится гистограмма всех чисел сессии, среднее и разброс.

0Розыгрышей
0Уникальных
—Среднее
—Разброс

Популярные диапазоны

Диапазоны, которые чаще всего вводят руками, — каждый открывается готовым к работе.

Что делает этот генератор

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

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

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

Если нужный диапазон вы вводите каждый раз один и тот же, откройте готовую страницу и не набирайте границы руками: от 1 до 10, от 1 до 20, от 1 до 50, от 1 до 100 или от 1 до 1000. Каждая открывается уже настроенной.

Рандомайзер и генератор случайных чисел — это одно и то же?

Рандомайзером в обиходе называют любой инструмент, который выбирает вариант вслепую: число, победителя из списка, участника среди комментариев. Генератор случайных чисел — это рандомайзер, у которого вариантами служат целые числа заданного диапазона. Так что да: страница, на которой вы находитесь, и есть рандомайзер чисел, просто названная точнее.

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

Разница появляется, когда выбирать нужно не число, а имя. Тогда нумеровать участников вручную незачем — откройте рандомайзер для розыгрыша призов: он принимает список целиком, сам отбирает победителей и резервных и выдаёт ссылку-доказательство для зрителей. Если же вопрос требует одного ответа, а не числа, есть «Да или Нет».

Где этим пользуются

🎁Розыгрыши призов

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

🎓Уроки и занятия

Вызывайте к доске, не отдавая предпочтения первому ряду, делите на группы, распределяйте номера заданий. Полноэкранный режим выводит цифры на проектор.

🎲Настольные игры

Потерянный кубик больше не проблема: есть шестигранный кубик и кубик d20, а режим без повторов вытягивает жетоны без возврата.

🏆Спорт и жеребьёвка

Распределите дорожки, определите порядок старта, решите, кто идёт первым. Для лотерейных форматов готова лотерея 6 из 49.

🧪Тесты и выборки

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

🤔Принять решение

Когда два варианта действительно равны, перестаньте мучиться и доверьте выбор числу. Для одного вопроса есть отдельный инструмент «Да или Нет».

Что можно сделать с результатом

  • Показ на весь экран. Одно нажатие — и число занимает весь экран, чтобы его прочитала целая аудитория. Сделано для проекторов, сцены и стримов; ни у кого из конкурентов этого нет.
  • Повторяемый розыгрыш. Объявите кодовую фразу до розыгрыша, и результат станет воспроизводимым: каждый зритель введёт ту же фразу у себя и получит то же число.
  • Режим без повторов. Выбор без возврата — именно то, что нужно, когда вы раздаёте уникальные номера, а не бросаете кубик.
  • Живая статистика сессии. Гистограмма всего, что вы вытянули, со средним и разбросом: видно своими глазами, что распределение ровное.
  • Выгрузка в CSV. Пригодится, когда сгенерировали пятьдесят чисел и нужно перенести их в таблицу.
  • Озвучивание. Результат произносится на языке страницы — удобно для доступности и когда руки заняты.

Что делает розыгрыш честным

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

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

Как получается настоящая случайность

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

Откуда берётся непредсказуемость

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

Генератор запрашивает байты из этого пула через Web Crypto API вызовом crypto.getRandomValues(). Тот же источник браузер использует для создания ключей шифрования, которые защищают вашу банковскую сессию.

Почему Math.random не годится

Большинство быстрых генераторов вызывают Math.random(). Это удобно, быстро и представляет собой чистую арифметическую формулу со скрытым внутренним состоянием. Задайте ей стартовое значение — и она выдаст ту же последовательность. Понаблюдайте за выводом достаточно долго — и состояние можно восстановить, после чего все будущие значения известны заранее. Для перемешивания фоновых картинок это нормально. Для решения, кому достанется приз, — нет, и разработчики браузеров прямо пишут об этом в документации.

Смещение при округлении, которое почти никто не исправляет

Вот ошибка, которая прячется на виду. Допустим, у вас есть случайные байты от 0 до 255, а нужно число от 1 до 100. Очевидный ход — взять остаток от деления на 100 и прибавить единицу. Выглядит безобидно, но это неверно: 256 не делится на 100 нацело, поэтому значения с 1 по 56 выпадают чаще, чем с 57 по 100. Перекос небольшой, примерно один к двумстам, но он систематический, он не усредняется со временем и на большой выборке становится вполне ощутимым.

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

Доказуемый результат, когда на кону приз

Непредсказуемость и доказуемость — противоположности, и получить обе сразу нельзя. Хитрость в том, чтобы делать их по очереди. Включите «повторяемый розыгрыш», и генератор перестанет брать энтропию из пула, а выведет результат из кодовой фразы, которую вы можете объявить публично.

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

Если проверять руками зрителю не нужно, проще включить «защищённый розыгрыш»: тогда число выбирает и подписывает сервер, а вам достаточно дать ссылку на страницу с результатом.

Почему одно и то же число выпадает подряд

Это самая частая претензия ко всем генераторам случайных чисел, и почти всегда генератор ни при чём. Настоящая случайность кучкуется. У неё нет памяти, поэтому нет и причины избегать значения, которое только что выпало. Бросьте кубик шесть раз — вероятность увидеть все шесть граней всего около полутора процентов. Подавляющая вероятность в том, что что-то повторится, а чего-то не хватит.

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

Оцените генератор

★ ★ ★ ★ ★

Частые вопросы

Чем рандомайзер отличается от генератора случайных чисел?

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

Это действительно случайно или только выглядит так?

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

Может ли кто-то предсказать или подтасовать результат?

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

Почему одно и то же число выпало дважды подряд?

Потому что так выглядит случайность. Каждый бросок независим и не помнит предыдущего, поэтому повторы и пропуски ожидаемы, а не подозрительны. Если нужно, чтобы каждое значение встретилось ровно один раз, переключитесь на режим без повторов.

Какой диапазон максимально возможен?

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

Это бесплатно и нужна ли регистрация?

Бесплатно, без ограничений и без аккаунта. Сайт живёт на рекламе, размещённой в стороне от инструмента. Платных тарифов нет, водяных знаков нет, разблокировать нечего.

Работает ли без интернета?

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

Вы храните числа, которые я генерирую?

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

Можно использовать для розыгрыша с реальным призом?

Да, и для этого лучше взять инструмент защищённого розыгрыша, а не эту страницу. Он фиксирует список участников отпечатком до розыгрыша и делает страницу проверки, которую зрители посмотрят сами.

Чем это отличается от генератора чисел в Google?

Google показывает простую вертушку прямо в выдаче — две границы и кнопка; именно её обычно и имеют в виду, когда ищут «гугл генератор чисел». Для числа к настольной игре этого хватает, для остального нет. Здесь есть несколько чисел за один раз, режим без повторов, полноэкранный показ для аудитории, выгрузка в CSV, статистика сессии и ссылка-доказательство для розыгрыша с призом.