CodeKitHub
Щоденні інструменти

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

Останнє оновлення:

Щоб отримати випадкове число, оберіть мінімум і максимум (обидва включно) і натисніть "Згенерувати" — кожне ціле число в цьому діапазоні має точно рівний шанс з'явитися, потрібне вам одне число чи тисяча. Готові пресети покривають найпоширеніші діапазони (1–10, 1–100, кубик, лотерея), або введіть свої власні мінімум і максимум, включно з від'ємними числами. Увімкніть "без повторів", щоб тягнути числа, як у лотереї — кожне число з'являється не більше одного разу, — і за бажанням відсортуйте результати. Використовується криптографічно стійка випадковість, тож кожне число в діапазоні точно однаково ймовірне.

Popular ranges:

Що це за інструмент?

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

Якість має більше значення, ніж здається: наївні генератори мають приховане зміщення в бік певних частин діапазону. Цей інструмент використовує crypto.getRandomValues() — браузерний API, стандартизований специфікацією W3C Web Cryptography, яка вимагає від реалізацій "генерувати криптографічно стійкі випадкові значення". Це сильніша гарантія, ніж Math.random(), для якого браузери прямо не вимагають непередбачуваності чи відсутності зміщення. У поєднанні з методом відбраковки (rejection sampling) — класичним способом усунення зміщення в діапазоні — кожне число в обраному вами діапазоні стає точно так само ймовірним, як і будь-яке інше.

Навіщо його використовувати?

  • Будь-який діапазон, включно з від'ємними числами, до 10 000 чисел за раз.
  • Режим "без повторів" для чесних розіграшів — наче тягнути пронумеровані кульки з мішка.
  • Опціональне сортування для зручного читання списків.
  • Доведено чесно: криптографічно стійко й без зміщення, підходить для реальних розіграшів.
  • Приватно й миттєво — генерується на вашому пристрої, нічого не логується.

Як користуватися

  1. Задайте мінімум і максимум (обидва включно).
  2. Оберіть, скільки чисел вам потрібно.
  3. Позначте "без повторів" для розіграшу без повторень і "сортувати", якщо потрібен впорядкований список.
  4. Натисніть "Згенерувати числа" — одне число показується великим, списки — по одному на рядок.
  5. Натисніть "Копіювати все" для списків.

Приклад

Введення

Мін: 1, Макс: 50, Кількість: 6, без повторів, відсортовано

Результат

3
11
24
30
42
49

Класичний розіграш у стилі лотереї: шість унікальних чисел від 1 до 50, відсортованих.

Практичні поради

  • Потрібен список замість одного числа? Встановіть кількість більше 1 — інструмент виведе по одному числу на рядок, готовому для вставки в стовпець таблиці.
  • Кидаєте кубики для настільної гри чи настільної рольової гри? Встановіть мінімум/максимум відповідно до кубика (1–6, 1–20) і згенеруйте кілька кидків одразу, замість того, щоб натискати "згенерувати" повторно.
  • Витягуєте невелику вибірку для опитування зі списку 500 нумерованих респондентів? Встановіть діапазон 1–500, увімкніть "без повторів" і витягніть стільки ID, скільки потрібно — ніхто не буде обраний двічі.
  • Вибір одного переможця з пулу працює так само, як генерування списку: встановіть кількість 1, а діапазон — на кількість учасників.
  • Для генерування чисел у стилі лотереї (скажімо, 6 чисел від 1 до 49) "без повторів" плюс сортування відтворює те, як зачитуються реальні лотерейні тиражі.

Випадкове число проти списку випадкових чисел

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

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

Генератор UUID · Генератор паролів

Популярні діапазони: 1-6, 1-10, 1-30, 1-100 і більше

Більшості людей потрібне випадкове число в одному з кількох класичних діапазонів, тому в інструменті є пресети в один клік для них. 1–6 — стандартний кидок кубика (використовуйте 1–20 для настільних рольових ігор); 1–8 і 1–30 поширені для вибору в класі та невеликих розіграшів; 1–10 і 1–100 — повсякденні діапазони "вибери число"; 1–1000 підходить для більших пулів.

Кожен пресет — це просто ярлик: він заповнює мінімум і максимум і одразу генерує результат. Потрібне випадкове число від 1 до 20, від 5 до 50 чи від -10 до 10? Введіть будь-які межі, включно з від'ємними числами. Обидва кінці завжди включені в розіграш.

"Рандомайзер чисел" і "генератор випадкових чисел" — це одне й те саме: встановіть діапазон, натисніть "згенерувати", і ви отримаєте неупереджений вибір. Для повторюваних розіграшів (наприклад, оголошення номерів бінго від 1 до 90) увімкніть "без повторів", щоб кожне число оголошувалося лише раз.

Часті запитання

Чи справді випадкові ці числа?

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

Чи входять мінімум і максимум у результати?

Так, обидва кінці включно. Діапазон 1–10 може дати як 1, так і 10.

Що саме робить опція "без повторів"?

Кожне число в діапазоні може з'явитися не більше одного разу, наче тягнути пронумеровані кульки з мішка, не повертаючи їх назад. Тому кількість не може перевищувати розмір діапазону — інструмент повідомить, якщо це станеться.

Чи можу я використати це для чесного вибору переможця розіграшу?

Так. Пронумеруйте учасників від 1 до N, згенеруйте одне число в цьому діапазоні, і результат буде неупередженим вибором. Для кількох переможців використовуйте "без повторів", щоб ніхто не виграв двічі.

Чому в моєму списку двічі з'явилося те саме число?

Без "без повторів" кожне випадання незалежне — повтори нормальні й насправді є доказом справжньої випадковості (кубик може двічі викинути однакове значення). Увімкніть "без повторів", якщо вам потрібне кожне число лише раз.

Як згенерувати випадкове число від 1 до 100?

Натисніть пресет 1–100 (або встановіть мінімум 1, а максимум 100) і натисніть "Згенерувати числа". Кожне ціле число від 1 до 100 має рівно 1 шанс зі 100. Так само працює для будь-якого діапазону — 1–10, 1–30, 1–1000 або власних меж.

Чи можу я кинути кубик за допомогою цього (випадкове число 1-6)?

Так — використайте пресет 1–6 (кубик). Для кількох кубиків одразу збільшіть кількість: наприклад, кількість 4 з діапазоном 1–6 кидає чотири кубики за один клік. Для D20 встановіть діапазон 1–20.

Як провести розіграш випадкових чисел, наприклад для бінго чи лотереї?

Встановіть діапазон на весь ваш пул — 1–90 для бінго, 1 до кількості квитків для лотереї — увімкніть "без повторів" і згенеруйте весь список за раз. Читання цього списку по порядку математично те саме, що тягнути числа одне за одним, не повертаючи їх назад, лише швидше.

Схожі інструменти