Блог
Русский

Генератор случайных чисел — числа в заданном диапазоне

Генератор случайных чисел с диапазоном, режимом без повторов и дробными числами

Работает в браузере · файлы никуда не загружаются

Тип чисел
Сортировка
Разделитель
Результат

Пока пусто. Нажмите «Сгенерировать».

Что это такое

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

Как пользоваться

  1. Выберите Целые или Дробные.
  2. Введите минимум и максимум. Обе границы тоже могут выпасть. Дробную часть отделяйте точкой.
  3. Укажите, сколько чисел нужно, — от 1 до 10 000.
  4. Включите Без повторов, если все числа должны быть разными. Для дробных чисел также задайте количество знаков после запятой.
  5. Нажмите Сгенерировать. Глядя на результат, меняйте сортировку и разделитель, а затем скопируйте числа кнопкой копирования.

Как это работает

  • Источник случайности: только 32-битные значения из crypto.getRandomValues. Math.random не используется.
  • Равномерность: если просто взять остаток от деления 32-битного значения на размер диапазона, малые числа будут выпадать немного чаще. Инструмент отбрасывает значения из «неровного хвоста» и берет новые (выборка с отклонением), поэтому шансы у всех чисел одинаковые.
  • Огромные диапазоны: если размах больше 2^32, вычисления переходят на BigInt, так что даже полный диапазон ±9 007 199 254 740 991 остается без смещения.
  • Без повторов: алгоритм выборки Флойда выбирает ровно столько значений, сколько вы просили, не перебирая весь диапазон. Любой набор чисел равновероятен, а порядок перемешивается, если не выбрана сортировка.
  • Дробные числа: выбор идет равномерно среди всех кратных 10^-n значений внутри границ (при двух знаках — с шагом 0.01), и числа выводятся точным текстом, без погрешностей плавающей точки.
  • Отображение: сортировка и разделитель (запятая, пробел, новая строка) меняют вид уже полученных чисел без новой генерации.

Примеры

Настройки Возможный результат
1–45, 6 чисел, без повторов, по возрастанию 3, 11, 19, 27, 38, 44
-10–10, 5 чисел 7, -3, -3, 0, 10 (отрицательные числа и повторы возможны)
0–1, 2 знака после запятой, 3 числа 0.27, 0.84, 0.05
1–100, 1 число любое одно значение от 1 до 100

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

Числа действительно случайные? Чем это отличается от Math.random?

Инструмент использует только криптографический генератор, встроенный в браузер (crypto.getRandomValues), и никогда не вызывает Math.random. Кроме того, он устраняет смещение по модулю — отбрасывает те немногие исходные значения, из-за которых малые числа выпадали бы чаще, и берет новое (выборка с отклонением). Поэтому каждое число в диапазоне выпадает с одинаковой вероятностью.

Что будет в режиме без повторов, если запросить больше чисел, чем есть в диапазоне?

Шесть разных чисел от 1 до 5 получить нельзя, поэтому инструмент покажет ошибку и ничего не сгенерирует. Расширьте диапазон или уменьшите количество. Даже на огромных диапазонах выполняется ровно столько работы, сколько нужно для запрошенных чисел, так что все происходит быстро.

Насколько большими могут быть числа?

В режиме целых чисел подходит любое безопасное целое от -9 007 199 254 740 991 до 9 007 199 254 740 991 — это предел точных целых чисел в JavaScript. За один раз можно получить от 1 до 10 000 чисел.

Генерируются ли новые числа при смене сортировки или разделителя?

Нет. Сортировка и разделитель меняют только то, как показаны уже полученные числа. Чтобы получить новые, нажмите «Сгенерировать».

Как вводить дробные границы?

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

Не нашли нужный инструмент?