Генератор случайных чисел
Задайте диапазон и количество чисел. Каждое число выбирается равномерно из защищённого источника случайности вашего браузера.
Работает полностью в браузере
До 10 000 чисел за раз, границы до 30 цифр и до 10 знаков после запятой. Результаты не сохраняются; при перезагрузке страницы они исчезают.
Как сгенерировать случайные числа
- Введите наименьшее и наибольшее значения. Могут выпасть оба конца диапазона; отрицательные числа тоже работают.
- Задайте, сколько чисел нужно, и отметьте Без повторов, если все числа должны быть разными.
- Нажмите Создать, затем скопируйте список или скачайте его в виде текстового файла.
Зачем нужен защищённый генератор и что здесь значит «случайно»
Честный жребий означает, что каждое допустимое значение равновероятно, а один результат ничего не говорит о следующем. Math.random() быстр, но на самом деле представляет собой предсказуемую последовательность; он годится для анимации, но не для розыгрыша призов. Функция браузера crypto.getRandomValues получает начальное значение от операционной системы и подходит для всего, из-за чего люди могут поспорить.
Превращение сырых случайных битов в число от 1 до 6 — то место, где ошибаются многие инструменты. У 32-битного значения 4 294 967 296 вариантов, и 6 не делит их нацело, поэтому использование остатка делает младшие грани чуть вероятнее. Исправление — отбраковка: порогом служит наибольшее кратное размеру диапазона число ниже 232, а выпавшее значение выше него отбрасывается и выбирается заново. Для диапазонов шире 32 бит инструмент берёт ровно столько бит, сколько нужно, и отбраковывает всё, что выходит за диапазон, используя большие целые числа, чтобы значения около 9 007 199 254 740 991 оставались точными.
Дробные числа используют ту же идею на сетке. При двух знаках после запятой диапазон от 0 до 5 рассматривается как целые числа от 0 до 500, выбирается одно из них, и запятая возвращается на место, благодаря чему каждое значение сетки остаётся равновероятным, а не получается округлением непрерывного числа.
Советы
- Чтобы выбрать людей, а не числа, вставьте список в инструмент Случайный выбор имени.
- Нужен секрет, а не число? Генератор паролей использует тот же источник случайности с наборами символов.
- Нужен уникальный идентификатор вместо небольшого числа? Попробуйте инструмент Генератор UUID.
Вопросы и ответы
Действительно ли числа случайны?
Они берутся из crypto.getRandomValues — того же защищённого генератора, который браузеры используют для ключей шифрования, а не из Math.random. Каждое значение в диапазоне равновероятно. Генератор достаточно хорош для игр, розыгрышей и выбора выборки; для регулируемых лотерей его проверка не проводилась.
Что такое смещение по модулю и есть ли оно здесь?
Если взять случайное 32-битное число и оставить остаток от деления на размер диапазона, некоторые результаты станут чуть вероятнее, когда размер диапазона не делит 232 нацело. Этот инструмент отбрасывает любой результат, попавший в неравномерный остаток, и выбирает заново, поэтому у каждого значения строго одинаковые шансы. Это верно и для огромных диапазонов, которые обрабатываются большими целыми числами.
Как работает «Без повторов» и когда он не срабатывает?
Инструмент выбирает каждое новое число и пропускает уже выпавшие, а для малых диапазонов перемешивает весь диапазон и берёт первые несколько. Если вы просите больше разных чисел, чем вмещает диапазон, например 7 из 1–6, он сообщит об этом, а не зациклится.
Что будет, если минимум больше максимума?
Значения поменяются местами, и строка результата сообщит об этом. Ввод 10 и 1 даёт тот же результат, что и ввод 1 и 10.
Как работают дробные числа?
Задайте 2 знака после запятой, и диапазон от 0 до 1 превратится в 101 значение: 0,00, 0,01 и так до 1,00, каждое равновероятно. В результатах всегда показывается полное число знаков, поэтому 0,50 остаётся 0,50. У самих границ не может быть больше знаков после запятой, чем вы выбрали.
Можно ли использовать это для лотереи или броска кубика?
Для броска кубика возьмите от 1 до 6. Для лотерейного билета отметьте Без повторов, например 6 чисел от 1 до 49, отсортированные по возрастанию. Случайный выбор не даёт шансов выше, чем любые другие числа. Выпавшие числа не сохраняются и никуда не отправляются.