# Генератор випадкових чисел

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

URL: https://acrafto.com/uk/generator-vypadkovyh-chysel/  
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\*\*). Той самий посів завжди дає ті самі числа, тож будь-хто може відтворити ваше жеребкування й перевірити, що результат саме такий, як заявлено.

Обидва режими працюють **повністю у вашому браузері**. Жодне число ніколи не потрапляє на сервер.

### Без модульного зміщення

Більшість простих генераторів відображають випадкове 32-бітне значення на ваш діапазон через `value % range`. Коли діапазон не ділить 2³² рівно, найменші числа випадають трохи частіше за інші. На тисячах жеребкувань це стає помітним.

Цей генератор натомість використовує **вибіркове відсіювання (rejection sampling)**: значення, що потрапили б у нерівний “хвіст”, відкидаються і генеруються заново. Кожне число у вашому діапазоні має точно однакові шанси. Перевірити це можна вбудованим тестом на рівномірність.

## Що вміє генератор

### Діапазон

- **Мінімум і максимум** — будь-який цілий або десятковий діапазон, включно з від’ємними значеннями
- **Кількість чисел** — від 1 до **1 000 000** за одне жеребкування
- **Без повторень** — кожне число з’являється щонайбільше один раз, як у справжньому жеребкуванні
- **Сортування** — порядок жеребкування, за зростанням або за спаданням; сортування ніяк не впливає на випадковість
- **Крок** — обмежити результати кратними значенню, щоб випадали лише 0, 5, 10, 15
- **Виключення чисел** — список значень, які ніколи не мають випасти

### Режим

- **Джерело випадковості** — безпечне (Web Crypto) або з посівом (відтворюване)
- **Посів** — будь-який текст; той самий посів завжди відтворює те саме жеребкування
- **Розподіл** — рівномірний, нормальний (Гаусів), експоненційний, Пуассона, трикутний, біноміальний
- **Ваги** — надати обраним числам вищу ймовірність, записується як `number:weight`
- **Кубикова нотація** — `3d6+2`, `d20`, `2d20kh1` для переваги (advantage), `4d6dl1` для генерації характеристик персонажа

### Виведення

- **Роздільник** — кома, пробіл, крапка з комою, табуляція, новий рядок або будь-що на ваш вибір
- **Система числення** — десяткова, двійкова, вісімкова, шістнадцяткова або основа 36
- **Доповнення нулями** — перетворити 7 на 007 для квитків або ID-номерів
- **Префікс і суфікс** — обгорнути кожне число фіксованим текстом
- **Шаблон** — `{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 | Чотири цифри, повторення дозволені |

## Відтворювані жеребкування

Режим із посівом існує для моментів, коли “повірте, це було випадково” недостатньо.

Оберіть посів, з яким усі погодяться заздалегідь — дату, хештег, курс закриття чогось публічного — і оголосіть його перед жеребкуванням. Тоді будь-хто може ввести той самий посів із тими самими налаштуваннями й отримати ідентичний результат. Ви не довели, що числа були непередбачуваними; ви довели, що не перегенеровували, поки не сподобалась відповідь.

Так само можна зробити випадковість відтворюваною в роботі, яку потрібно перевіряти: план вибірки, який колега може повторити, набір тестових фікстур, що лишається стабільним у наборі тестів, шкільна вправа, де кожен учень отримує однакові “випадкові” дані.

## Вибір розподілу

**Рівномірний** дає кожному числу в діапазоні однакові шанси. Це те, що зазвичай мають на увазі під випадковістю, і це значення за замовчуванням.

Інші розподіли групують результати навколо певного значення, як це зазвичай роблять реальні величини:

- **Нормальний (Гаусів)** — зріст, похибки вимірювань, результати тестів. Задайте середнє й стандартне відхилення.
- **Експоненційний** — час очікування між незалежними подіями.
- **Пуассона** — кількість подій за фіксований інтервал: прибуття за годину, дефекти на партію.
- **Трикутний** — коли відомі мінімум, максимум і найбільш імовірне значення, але нічого більше. Часто застосовується в оцінках проєктів.
- **Біноміальний** — кількість успіхів із фіксованої кількості випробувань за фіксованої ймовірності.

Кожен розподіл обрізається до заданого вами діапазону, тож довгий хвіст Гаусового розподілу не вийде за межі мінімуму й максимуму.

## Де застосовуються випадкові числа

### Ігри та розваги

- **Настільні ігри** — кидки кубиків, черговість ходів
- **Настільні RPG** — `4d6dl1` для характеристик персонажа, `2d20kh1` для переваги (advantage)
- **Розіграші** — вибір переможця з посівом, щоб учасники могли перевірити результат
- **Вікторини** — випадковий порядок питань

### Статистика та наука

- **Вибірка** — вибір зразка з популяції без повторень
- **A/B тестування** — розподіл учасників на групи
- **Симуляція Монте-Карло** — оцінка ймовірності через повторення
- **Бутстрепінг** — ресемплінг для оцінки невизначеності

### Розробка

- **Тестові дані** — мільйон значень, згенерованих у фоні, тож сторінка лишається чутливою
- **Фікстури** — з посівом, тож тест, що падає, падає однаково двічі
- **Випадкові ID** — з доповненням, префіксами або шаблоном
- **Навантажувальне тестування** — шаблонні ідентифікатори на кшталт `user{n}@example.com`

## Справжні vs. псевдовипадкові числа

|  | `Math.random()` | `crypto.getRandomValues()` | З посівом (xoshiro128\*\*) |
| --- | --- | --- | --- |
| **Тип** | Псевдовипадкові | Криптографічно захищені | Псевдовипадкові, детерміновані |
| **Джерело ентропії** | Зерно, обране рушієм | Системний CSPRNG | Ваш текст-посів |
| **Передбачувані?** | Потенційно так | Ні | Так, за задумом |
| **Відтворювані?** | Ні | Ні | Завжди |
| **Придатні для безпеки** | Ні | Так | Ні |
| **Придатні для статистики** | Залежить | Так | Так |
| **Придатні для перевіреного жеребкування** | Ні | Ні | Так |

`Math.random()` у цьому інструменті не використовується жодним чином.

## Жеребкування без повторень

При увімкненій опції **Без повторень** кожне число в діапазоні з’являється щонайбільше один раз. Ідеально для:

- **Розіграшів** — ніхто не може виграти двічі
- **Перестановок** — перемішування набору елементів
- **Бінго** — виклик чисел, які лишаються викликаними
- **Лотереї** — шість різних чисел від 1 до 49

Жеребкування використовує частковий Fisher–Yates shuffle, тож запит на 6 чисел з мільйона такий же швидкий, як запит на 6 з 49 — воно ніколи не крутиться в надії уникнути колізії. Якщо ви запросите більше унікальних чисел, ніж може дати діапазон, генератор про це повідомить замість того, щоб зависнути.

## Експорт результатів

Скопіюйте числа як звичайний текст із будь-яким роздільником, як **CSV** для таблиці, як **JSON** для коду або як **таблицю Markdown** для документації. Дуже великі жеребкування повністю зберігаються в пам’яті й повністю копіюються, навіть якщо на екрані згенеровано лише перші кілька тисяч.

## Генерація випадкових чисел у власному коді

### JavaScript / TypeScript

```
// Cryptographically secure integer in [min, max], without modulo bias.
// The naive `value % range` favours low numbers when range does not
// divide 2**32 evenly - so we reject values in the uneven tail.
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

# Cryptographically secure, no modulo bias
n = secrets.randbelow(max - min + 1) + min

# Reproducible: the same seed always gives the same sequence
rng = random.Random('my-seed')
n = rng.randint(min, max)

# Without repetition
sample = random.sample(range(min, max + 1), count)
```

### PHP

```
// Cryptographically secure (PHP 7+), no modulo bias
$n = random_int($min, $max);

// Reproducible
mt_srand(crc32('my-seed'));
$n = mt_rand($min, $max);
```

## Часті запитання (FAQ)

### Чи результат справді випадковий?

У безпечному режимі — так. Він походить з `crypto.getRandomValues()`, криптографічно захищеного генератора, живленого пулом ентропії вашої операційної системи. Результати рівномірно розподілені й непередбачувані. Режим з посівом навмисно протилежний: він відтворюваний, і саме в цьому його сенс.

### Скільки чисел можна згенерувати одночасно?

До 1 000 000. Жеребкування понад 50 000 обчислюються у фоновому воркері, тож сторінка лишається чутливою, а на екрані показуються перші 2000 із кількістю решти — копіювання все одно дає вам усе.

### Чи можу я генерувати від'ємні числа?

Так. Встановіть від'ємний мінімум. Працює весь діапазон чисел JavaScript, включно з від'ємними діапазонами з обох боків.

### Чи впливає сортування на випадковість?

Ні. Числа спочатку генеруються, а потім сортуються. Сортування змінює лише порядок, у якому ви їх бачите.

### Чи дасть той самий посів ті самі числа завтра?

Так, і на будь-якому іншому пристрої чи в іншому браузері. Генератор з посівом повністю детермінований і залежить лише від вашого посіву та налаштувань.

### Що показує тест на рівномірність?

Він виконує хі-квадрат тест, порівнюючи, як часто кожне число насправді випадало, з тим, як часто воно мало б випадати. Якщо статистика лишається нижчою за критичне значення, результати узгоджуються з рівномірним розподілом. Для змістовного результату потрібен достатньо вузький діапазон і достатньо жеребкувань — щонайменше п'ять на кожне можливе значення.

### Як працюють ваги?

Запишіть їх як пари `number:weight`, наприклад `1:5, 2:1, 3:1`. Тут 1 у п'ять разів імовірніше, ніж 2 або 3. Числа, які ви не вказали, отримують вагу нуль і ніколи не випадають.

### Яка кубикова нотація підтримується?

`3d6` кидає три шестигранні кубики. Додайте модифікатор через `3d6+2`. Залишайте чи відкидайте кубики за допомогою `kh`, `kl`, `dh`, `dl` — так, `2d20kh1` залишає найвищий результат із двох d20 (advantage), а `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))
- Русский (ru): [Генератор случайных чисел](https://acrafto.com/ru/generator-sluchajnyh-chisel/) ([Markdown](https://acrafto.com/ru/generator-sluchajnyh-chisel/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))
