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

> Бесплатный генератор случайных чисел: криптостойкий или воспроизводимый seed-режим, шесть распределений, веса, кости и live-статистика. 100% в браузере.

URL: https://acrafto.com/ru/generator-sluchajnyh-chisel/  
Updated: 2026-08-28

Tools are interactive browser apps; there is no public API, no endpoints to call and no server-side processing. To use a tool, open its HTML page in a browser.

## Как работает генератор случайных чисел?

Генератор предлагает **два источника случайности**, а вы выбираете, какой подходит для задачи.

**Криптостойкий режим** берёт энтропию из вашей операционной системы через 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.

### Хранится ли моя история где-либо?

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

## Other languages

- Čeština (cs): [Generátor náhodných čísel](https://acrafto.com/cs/generator-nahodnych-cisel/) ([Markdown](https://acrafto.com/cs/generator-nahodnych-cisel/index.md))
- Slovenčina (sk): [Generátor náhodných čísel](https://acrafto.com/sk/generator-nahodnych-cisel/) ([Markdown](https://acrafto.com/sk/generator-nahodnych-cisel/index.md))
- English (en): [Random Number Generator](https://acrafto.com/en/online-random-number-generator/) ([Markdown](https://acrafto.com/en/online-random-number-generator/index.md))
- Deutsch (de): [Zufallszahlen Generator](https://acrafto.com/de/zufallszahlen-generator-online/) ([Markdown](https://acrafto.com/de/zufallszahlen-generator-online/index.md))
- Français (fr): [Générateur de nombres aléatoires](https://acrafto.com/fr/generateur-nombres-aleatoires/) ([Markdown](https://acrafto.com/fr/generateur-nombres-aleatoires/index.md))
- Español (es): [Generador de números aleatorios](https://acrafto.com/es/generador-numeros-aleatorios-online/) ([Markdown](https://acrafto.com/es/generador-numeros-aleatorios-online/index.md))
- Italiano (it): [Generatore di numeri casuali](https://acrafto.com/it/generatore-numeri-casuali/) ([Markdown](https://acrafto.com/it/generatore-numeri-casuali/index.md))
- Português (pt): [Gerador de números aleatórios](https://acrafto.com/pt/gerador-numeros-aleatorios/) ([Markdown](https://acrafto.com/pt/gerador-numeros-aleatorios/index.md))
- Nederlands (nl): [Random getal generator](https://acrafto.com/nl/generator-willekeurige-getallen/) ([Markdown](https://acrafto.com/nl/generator-willekeurige-getallen/index.md))
- Polski (pl): [Generator liczb losowych](https://acrafto.com/pl/generator-liczb-losowych-online/) ([Markdown](https://acrafto.com/pl/generator-liczb-losowych-online/index.md))
- Română (ro): [Generator numere aleatoare](https://acrafto.com/ro/generator-numere-aleatoare-online/) ([Markdown](https://acrafto.com/ro/generator-numere-aleatoare-online/index.md))
- Magyar (hu): [Véletlenszám generátor](https://acrafto.com/hu/veletlen-szam-generator/) ([Markdown](https://acrafto.com/hu/veletlen-szam-generator/index.md))
- Ελληνικά (el): [Γεννήτρια τυχαίων αριθμών](https://acrafto.com/el/generator-tychaion-arithmon-online/) ([Markdown](https://acrafto.com/el/generator-tychaion-arithmon-online/index.md))
- Български (bg): [Генератор на случайни числа](https://acrafto.com/bg/generator-sluchayni-chisla/) ([Markdown](https://acrafto.com/bg/generator-sluchayni-chisla/index.md))
- Hrvatski (hr): [Generator slučajnih brojeva](https://acrafto.com/hr/generator-nasumicnih-brojeva/) ([Markdown](https://acrafto.com/hr/generator-nasumicnih-brojeva/index.md))
- Slovenščina (sl): [Generator naključnih števil](https://acrafto.com/sl/generator-nakljucnih-stevil/) ([Markdown](https://acrafto.com/sl/generator-nakljucnih-stevil/index.md))
- Eesti (et): [Juhuslike arvude generaator](https://acrafto.com/et/juhuslike-arvude-generaator/) ([Markdown](https://acrafto.com/et/juhuslike-arvude-generaator/index.md))
- Latviešu (lv): [Gadījuma skaitļu ģenerators](https://acrafto.com/lv/gadijuma-skaitlu-generators/) ([Markdown](https://acrafto.com/lv/gadijuma-skaitlu-generators/index.md))
- Lietuvių (lt): [Atsitiktinių skaičių generatorius](https://acrafto.com/lt/atsitiktiniu-skaiciu-generatorius/) ([Markdown](https://acrafto.com/lt/atsitiktiniu-skaiciu-generatorius/index.md))
- Svenska (sv): [Slumptalsgenerator](https://acrafto.com/sv/slumptalsgenerator/) ([Markdown](https://acrafto.com/sv/slumptalsgenerator/index.md))
- Dansk (da): [Tilfældighedsgenerator](https://acrafto.com/da/tilfaeldighedsgenerator-online/) ([Markdown](https://acrafto.com/da/tilfaeldighedsgenerator-online/index.md))
- Suomi (fi): [Satunnaislukugeneraattori](https://acrafto.com/fi/satunnaislukugeneraattori/) ([Markdown](https://acrafto.com/fi/satunnaislukugeneraattori/index.md))
- Norsk (no): [Tilfeldig tallgenerator](https://acrafto.com/no/tilfeldig-tallgenerator/) ([Markdown](https://acrafto.com/no/tilfeldig-tallgenerator/index.md))
- Українська (uk): [Генератор випадкових чисел](https://acrafto.com/uk/generator-vypadkovyh-chysel/) ([Markdown](https://acrafto.com/uk/generator-vypadkovyh-chysel/index.md))
- Српски (sr): [Generator nasumičnih brojeva](https://acrafto.com/sr/generator-nasumicnih-brojeva/) ([Markdown](https://acrafto.com/sr/generator-nasumicnih-brojeva/index.md))
- Македонски (mk): [Генератор на случајни броеви](https://acrafto.com/mk/generator-slucajni-broevi/) ([Markdown](https://acrafto.com/mk/generator-slucajni-broevi/index.md))
- Bosanski (bs): [Generator nasumičnih brojeva](https://acrafto.com/bs/generator-nasumicnih-brojeva/) ([Markdown](https://acrafto.com/bs/generator-nasumicnih-brojeva/index.md))
- Shqip (sq): [Gjenerator numrash të rastësishëm](https://acrafto.com/sq/gjenerator-numrash-rastesishem/) ([Markdown](https://acrafto.com/sq/gjenerator-numrash-rastesishem/index.md))
- Türkçe (tr): [Rastgele sayı üretici](https://acrafto.com/tr/rastgele-sayi-uretici/) ([Markdown](https://acrafto.com/tr/rastgele-sayi-uretici/index.md))
- 日本語 (ja): [乱数生成ツール](https://acrafto.com/ja/ransu-generator/) ([Markdown](https://acrafto.com/ja/ransu-generator/index.md))
- 한국어 (ko): [랜덤 숫자 생성기](https://acrafto.com/ko/random-number-generator/) ([Markdown](https://acrafto.com/ko/random-number-generator/index.md))
- العربية (ar): [مولد أرقام عشوائية](https://acrafto.com/ar/random-number-generator/) ([Markdown](https://acrafto.com/ar/random-number-generator/index.md))
- हिन्दी (hi): [रैंडम नंबर जनरेटर](https://acrafto.com/hi/random-number-generator/) ([Markdown](https://acrafto.com/hi/random-number-generator/index.md))
- Bahasa Indonesia (id): [Generator angka acak](https://acrafto.com/id/generator-angka-acak-online/) ([Markdown](https://acrafto.com/id/generator-angka-acak-online/index.md))
- Tiếng Việt (vi): [Tạo số ngẫu nhiên](https://acrafto.com/vi/cong-cu-tao-so-ngau-nhien/) ([Markdown](https://acrafto.com/vi/cong-cu-tao-so-ngau-nhien/index.md))
- ไทย (th): [สุ่มตัวเลข](https://acrafto.com/th/random-number-generator/) ([Markdown](https://acrafto.com/th/random-number-generator/index.md))
- עברית (he): [מחולל מספרים אקראיים](https://acrafto.com/he/random-number-generator/) ([Markdown](https://acrafto.com/he/random-number-generator/index.md))
