Генератор випадкових чисел онлайн
Розподіл результатів
Тест рівномірності
Створіть більше чисел у вужчому діапазоні, щоб виконати тест.
Останні результати
Збережені набори
Як працює генератор випадкових чисел?
Генератор пропонує два джерела випадковості, і ви обираєте те, що підходить під завдання.
Безпечна випадковість отримує ентропію з вашої операційної системи через 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.