Генератор случайных чисел онлайн
Распределение результатов
Проверка на равномерность
Сгенерируйте больше чисел в более узком диапазоне, чтобы выполнить проверку.
Недавние генерации
Сохранённые пресеты
Как работает генератор случайных чисел?
Генератор предлагает два источника случайности, а вы выбираете, какой подходит для задачи.
Криптостойкий режим берёт энтропию из вашей операционной системы через Web Crypto API (crypto.getRandomValues()). Он непредсказуем и невоспроизводим — правильный выбор для настоящей жеребьёвки, результат которой никто не должен угадать заранее.
Режим с seed превращает любой введённый текст в начальное состояние детерминированного генератора (xoshiro128**). Один и тот же seed всегда даёт одни и те же числа, поэтому любой может повторить вашу жеребьёвку и убедиться, что результат именно такой, как вы утверждаете.
Оба режима работают полностью в вашем браузере. Ни одно число никогда не отправляется на сервер.
Без смещения по модулю
Большинство простых генераторов отображают случайное 32-битное значение на ваш диапазон через value % range. Если диапазон не делит 2³² без остатка, наименьшие числа выпадают немного чаще остальных. На тысячах розыгрышей это становится заметным.
Вместо этого генератор использует выборку с отклонением (rejection sampling): значения, попадающие в неравномерный «хвост», отбрасываются и генерируются заново. У каждого числа в диапазоне абсолютно одинаковый шанс выпасть. Проверить это можно самостоятельно с помощью встроенного теста на равномерность.
Что умеет генератор
Диапазон
- Минимум и максимум — любой целочисленный или дробный диапазон, включая отрицательные значения
- Количество чисел — от 1 до 1 000 000 за один розыгрыш
- Без повторений — каждое число появляется не более одного раза, как в настоящей жеребьёвке
- Сортировка — порядок выпадения, по возрастанию или по убыванию; сортировка никак не влияет на случайность
- Шаг — ограничить результаты кратными заданному значению, чтобы выпадали только 0, 5, 10, 15
- Исключить числа — укажите значения, которые никогда не должны выпасть
Режим
- Источник случайности — криптостойкий (Web Crypto) или с seed (воспроизводимый)
- Seed — любой текст; один и тот же seed всегда воспроизводит тот же розыгрыш
- Распределение — равномерное, нормальное (Гаусса), экспоненциальное, Пуассона, треугольное, биномиальное
- Веса — задайте отдельным числам более высокий шанс выпадения в формате
number:weight - Игральные кости —
3d6+2,d20,2d20kh1для преимущества,4d6dl1для генерации характеристик
Вывод
- Разделитель — запятая, пробел, точка с запятой, табуляция, новая строка или любой введённый текст
- Система счисления — десятичная, двоичная, восьмеричная, шестнадцатеричная или по основанию 36
- Дополнение нулями — превратите 7 в 007 для номеров билетов или идентификаторов
- Префикс и суффикс — обрамите каждое число фиксированным текстом
- Шаблон —
{n}означает число,{i}— его позицию, поэтомуuser{n}превращается вuser42 - Копировать как — обычный текст, CSV, JSON или таблицу Markdown
Статистика
Каждый розыгрыш сопровождается статистикой в реальном времени: сумма, среднее, медиана, минимум, максимум, стандартное отклонение, а также количество чётных, нечётных и простых чисел. Гистограмма показывает форму распределения, а критерий хи-квадрат позволяет проверить, действительно ли результаты соответствуют равномерному распределению.
История
Последние 50 розыгрышей сохраняются в вашем браузере вместе с настройками, которые их создали, — любой из них восстанавливается одним кликом. Часто используемые конфигурации можно сохранить как именованные пресеты, а всё это экспортировать в JSON-файл и импортировать на другом устройстве. Ничего не хранится нигде, кроме этого браузера.
Клавиатура
Нажмите Пробел или R, чтобы повторить розыгрыш, не отрываясь от клавиатуры.
Быстрые пресеты
| Пресет | Диапазон | Количество | Применение |
|---|---|---|---|
| 🎲 Кости | 1–6 | 1 | Настольные игры, принятие решений |
| 🪙 Монета | 0–1 | 1 | Орёл или решка |
| 🎰 Лотерея | 1–49 | 6 | Уникальные, отсортированные, как в настоящей жеребьёвке |
| 💯 1–100 | 1–100 | 1 | Проценты, A/B-разбиения |
| 🔢 PIN-код | 0–9 | 4 | Четыре цифры, повторения разрешены |
Воспроизводимые розыгрыши
Режим с seed нужен для случаев, когда фразы «поверьте, это было случайно» недостаточно.
Выберите seed, с которым заранее согласны все участники, — дату, хэштег, цену закрытия какого-нибудь публичного показателя — и объявите его до начала розыгрыша. После этого любой человек может ввести тот же seed с теми же настройками и получить идентичный результат. Вы не доказываете, что числа были непредсказуемы; вы доказываете, что не перезапускали розыгрыш, пока не понравился результат.
Так же можно сделать случайность воспроизводимой в работе, которую нужно проверять: план выборки, который коллега может повторить, набор тестовых фикстур, остающийся стабильным во всём наборе тестов, или классное задание, где у каждого ученика одинаковые «случайные» данные.
Выбор распределения
Равномерное даёт каждому числу в диапазоне одинаковый шанс. Именно это обычно имеют в виду под словом «случайное», и это распределение используется по умолчанию.
Остальные распределения группируют результаты вокруг некоторого значения — так обычно ведут себя реальные величины:
- Нормальное (Гаусса) — рост, ошибки измерений, результаты тестов. Задайте среднее значение и стандартное отклонение.
- Экспоненциальное — время ожидания между независимыми событиями.
- Пуассона — количество событий за фиксированный интервал: прибытий в час, дефектов в партии.
- Треугольное — когда известны минимум, максимум и наиболее вероятное значение, но ничего больше. Часто применяется в оценках проектов.
- Биномиальное — число успехов при фиксированном количестве испытаний с фиксированной вероятностью.
Каждое распределение обрезается по заданному диапазону, поэтому длинный «хвост» нормального распределения не может выйти за пределы минимума и максимума.
Где применяются случайные числа
Игры и развлечения
- Настольные игры — броски костей, определение очерёдности ходов
- Настольные RPG —
4d6dl1для характеристик персонажа,2d20kh1для преимущества - Розыгрыши призов — выбор победителя с seed, чтобы участники могли проверить результат
- Викторины — случайный порядок вопросов
Статистика и наука
- Выборка — отбор образцов из совокупности без повторений
- A/B-тестирование — распределение участников по группам
- Моделирование Монте-Карло — оценка вероятности через повторение
- Бутстрап — повторная выборка для оценки неопределённости
Разработка
- Тестовые данные — миллион значений, генерируемых в фоновом режиме, чтобы страница оставалась отзывчивой
- Фикстуры — с seed, чтобы падающий тест падал одинаково при повторных запусках
- Случайные ID — с дополнением нулями, префиксами или шаблоном
- Нагрузочное тестирование — шаблонные идентификаторы вроде
user{n}@example.com
Истинно случайные и псевдослучайные числа
Math.random() | crypto.getRandomValues() | С seed (xoshiro128**) | |
|---|---|---|---|
| Тип | Псевдослучайное | Криптографически стойкое | Псевдослучайное, детерминированное |
| Источник энтропии | Seed, выбранный движком | Системный CSPRNG | Ваш текст seed |
| Предсказуемо? | Потенциально да | Нет | Да, по замыслу |
| Воспроизводимо? | Нет | Нет | Всегда |
| Подходит для безопасности | Нет | Да | Нет |
| Подходит для статистики | Зависит | Да | Да |
| Подходит для проверяемых розыгрышей | Нет | Нет | Да |
Math.random() в этом инструменте не используется нигде.
Розыгрыши без повторений
При включённой опции Без повторений каждое число из диапазона появляется не более одного раза. Идеально подходит для:
- Розыгрышей призов — никто не может выиграть дважды
- Перестановок — перемешивания набора элементов
- Бинго — объявления чисел, которые больше не повторяются
- Лотерей — шесть различных чисел от 1 до 49
Розыгрыш использует частичную перетасовку Фишера — Йейтса, поэтому запрос 6 чисел из миллиона выполняется так же быстро, как запрос 6 из 49 — генератор никогда не крутится в цикле в надежде избежать коллизии. Если запрошено больше уникальных чисел, чем может дать диапазон, генератор сообщит об этом, а не зависнет.
Экспорт результатов
Скопируйте числа как обычный текст с любым разделителем, как CSV для таблиц, как JSON для кода или как таблицу Markdown для документации. Очень большие розыгрыши полностью хранятся в памяти и копируются целиком, даже если на экране отображаются только первые пару тысяч значений.
Генерация случайных чисел в собственном коде
JavaScript / TypeScript
// Криптографически стойкое целое число в диапазоне [min, max], без смещения по модулю.
// Наивный вариант `value % range` даёт перевес низким числам, если range
// не делит 2**32 без остатка — поэтому мы отбрасываем значения из неравномерного хвоста.
function randomInt(min, max) {
const range = max - min + 1;
const limit = Math.floor(0x100000000 / range) * range;
const arr = new Uint32Array(1);
let value;
do {
crypto.getRandomValues(arr);
value = arr[0];
} while (value >= limit);
return min + (value % range);
}
Python
import random
import secrets
# Криптографически стойкое, без смещения по модулю
n = secrets.randbelow(max - min + 1) + min
# Воспроизводимо: один и тот же seed всегда даёт одну и ту же последовательность
rng = random.Random('my-seed')
n = rng.randint(min, max)
# Без повторений
sample = random.sample(range(min, max + 1), count)
PHP
// Криптографически стойкое (PHP 7+), без смещения по модулю
$n = random_int($min, $max);
// Воспроизводимо
mt_srand(crc32('my-seed'));
$n = mt_rand($min, $max);
Часто задаваемые вопросы (FAQ)
Результат действительно случаен?
В криптостойком режиме — да. Числа получаются черезcrypto.getRandomValues(), криптографически стойкий генератор, использующий пул энтропии операционной системы. Результаты равномерно распределены и непредсказуемы. Режим с seed намеренно устроен наоборот: он воспроизводим, в этом и есть его смысл.
Сколько чисел можно сгенерировать за раз?
До 1 000 000. Розыгрыши свыше 50 000 вычисляются в фоновом воркере, чтобы страница оставалась отзывчивой, а на экране показываются первые 2 000 чисел с указанием количества остальных — при копировании вы всё равно получаете полный результат.Можно ли генерировать отрицательные числа?
Да. Установите отрицательный минимум. Поддерживается весь диапазон чисел JavaScript, включая отрицательные значения с обеих сторон.Влияет ли сортировка на случайность?
Нет. Числа сначала генерируются, а затем сортируются. Сортировка меняет только порядок отображения.Даст ли тот же seed те же числа завтра?
Да, и на любом другом устройстве или в другом браузере. Генератор с seed полностью детерминирован и зависит только от seed и настроек.Что показывает тест на равномерность?
Он выполняет критерий хи-квадрат, сравнивая, как часто каждое число выпадало на самом деле, с тем, как часто оно должно было выпадать. Если статистика остаётся ниже критического значения, результаты согласуются с равномерным распределением. Для содержательного вывода нужен достаточно узкий диапазон и достаточное количество розыгрышей — не менее пяти на каждое возможное значение.Как работают веса?
Задайте их в виде парnumber:weight, например 1:5, 2:1, 3:1. В этом примере 1 выпадает в пять раз чаще, чем 2 или 3. Числа, которые вы не указали, получают вес ноль и никогда не выпадают.
Какая нотация игральных костей поддерживается?
3d6 означает бросок трёх шестигранных костей. Добавьте модификатор через 3d6+2. Оставляйте или отбрасывайте кости с помощью kh, kl, dh, dl — так, 2d20kh1 оставляет наибольший результат из двух d20 (преимущество), а 4d6dl1 отбрасывает наименьший результат из четырёх d6.