Генератор випадкових чисел
Рандомайзер для будь-якого діапазону: кілька чисел одразу, режим без повторів. Безкоштовно, без реєстрації, і ніщо не покидає ваш пристрій.
Пробіл — згенерувати
Звичайний розіграш глядач перевірити не може — залишається вірити вам на слово. Тут число обчислюється з вашої фрази, тому будь-хто повторить розіграш у себе й отримає той самий результат.
- Оголосіть фразу до розіграшу — у пості, в описі або в прямому ефірі.
- Проведіть розіграш із цією фразою.
- Глядач вводить ту саму фразу тут і отримує те саме число.
Замінює захищений розіграш: разом вони не вмикаються.
Історія зберігається лише в цьому браузері. Ми її не бачимо й нікуди не надсилаємо.
Ця сесія
Рахується в цьому браузері, нікуди не надсилається
Натисніть «Згенерувати» — тут з'явиться гістограма всіх чисел сесії, середнє та розкид.
Популярні діапазони
Діапазони, які найчастіше вводять руками, — кожен відкривається готовим до роботи.
Що робить цей генератор
Укажіть нижню межу, укажіть верхню, натисніть кнопку. Рандомайзер видасть ціле число, і в кожного числа в діапазоні були рівно однакові шанси. Звучить як дрібниця, і частково так і є — але майже кожен безкоштовний генератор у мережі помиляється хоча б в одній деталі, а помітними такі помилки стають лише тоді, коли ціна питання висока.
Відмінностей тут три. Число береться з криптографічного пулу ентропії операційної системи, а не з простої арифметичної формули. Виправлено зсув при округленні, через який менші числа діапазону випадають частіше. І результат за бажанням можна довести постфактум — показати, що він справді отриманий з тих даних, які ви опублікували заздалегідь. Це те, що потрібно, коли на кону приз.
Усе відбувається всередині браузера. При натисканні кнопки не йде жодного запиту на сервер, немає акаунта, немає стежних cookie й немає журналу того, що ви згенерували. Перевірити це можна самому: відкрийте інспектор мережі в браузері, згенеруйте сотню чисел і переконайтеся, що назовні не пішло нічого.
Якщо потрібний діапазон ви вводите щоразу той самий, відкрийте готову сторінку й не набирайте межі руками: від 1 до 10, від 1 до 20, від 1 до 50, від 1 до 100 або від 1 до 1000. Кожна відкривається вже налаштованою.
Рандомайзер і генератор випадкових чисел — це одне й те саме?
Рандомайзером у побуті називають будь-який інструмент, який вибирає варіант наосліп: число, переможця зі списку, учасника серед коментарів. Генератор випадкових чисел — це рандомайзер, у якого варіантами служать цілі числа заданого діапазону. Тож так: сторінка, на якій ви перебуваєте, і є рандомайзер чисел, просто названий точніше.
Шукають її по-різному: генератор чисел, рандомайзер чисел, генератор рандомних чисел, генератор випадкових чисел онлайн. Інструмент за всіма цими назвами один — той, що вище. Різниця лише у звичці: коротке «генератор чисел» пишуть, коли потрібне просто число, а слово «випадкових» додають, коли важливо підкреслити, що вибір ніхто не підлаштував.
Різниця з'являється, коли вибирати потрібно не число, а ім'я. Тоді нумерувати учасників вручну ні до чого — відкрийте рандомайзер для розіграшу призів: він приймає список цілком, сам відбирає переможців і резервних та видає посилання-доказ для глядачів. Якщо ж питання вимагає однієї відповіді, а не числа, є «Так або Ні».
Де цим користуються
🎁Розіграші призів
Пронумеруйте учасників, виберіть переможця й опублікуйте посилання, за яким будь-хто повторить той самий результат. Докладно про те, як це влаштовано, — на сторінці захищеного розіграшу.
🎓Уроки та заняття
Викликайте до дошки, не віддаючи переваги першому ряду, діліть на групи, розподіляйте номери завдань. Режим на весь екран виводить цифри на проєктор.
🎲Настільні ігри
Втрачений кубик більше не проблема: є шестигранний кубик і кубик d20, а режим без повторів витягує жетони без повернення.
🏆Спорт і жеребкування
Розподіліть доріжки, визначте порядок старту, вирішіть, хто йде першим. Для лотерейних форматів готова лотерея 6 з 49.
🧪Тести та вибірки
Виберіть випадкові рядки для перевірки, візьміть вибірку з нумерованого списку, а для тестових облікових записів згодяться генератор паролів, генератор ніків і генератор імен та прізвищ.
🤔Ухвалити рішення
Коли два варіанти справді рівні, перестаньте мучитися й довірте вибір числу. Для одного питання є окремий інструмент «Так або Ні».
Що можна зробити з результатом
- Показ на весь екран. Одне натискання — і число займає весь екран, щоб його прочитала ціла аудиторія. Зроблено для проєкторів, сцени та стримів; ні в кого з конкурентів цього немає.
- Повторюваний розіграш. Оголосіть кодову фразу до розіграшу, і результат стане відтворюваним: кожен глядач введе ту саму фразу в себе й отримає те саме число.
- Режим без повторів. Вибір без повернення — саме те, що потрібно, коли ви роздаєте унікальні номери, а не кидаєте кубик.
- Жива статистика сесії. Гістограма всього, що ви витягнули, із середнім і розкидом: видно на власні очі, що розподіл рівний.
- Експорт у CSV. Згодиться, коли згенерували п'ятдесят чисел і потрібно перенести їх у таблицю.
- Озвучування. Результат вимовляється мовою сторінки — зручно для доступності й коли руки зайняті.
Що робить розіграш чесним
Чесність — це не одна властивість, а три, і звичайні інструменти дають лише першу. Джерело має бути непередбачуваним, переведення у ваш діапазон — без перекосу, а сама процедура — перевірюваною тим, хто вам не довіряє. Генератор може бути ідеально випадковим і все одно марним для розіграшу, бо в глядачів немає способу відрізнити чесний розіграш від підлаштованого.
На третю властивість тут працюють два різні режими, і вмикати їх разом сенсу немає. Захищений розіграш — для звичайного випадку: число вибирає й підписує сервер, а ви показуєте глядачам посилання, за яким вони бачать рівно той результат, що й ви. Повторюваний розіграш — для випадку, коли глядач має перевірити розіграш власними руками: результат виводиться з кодової фрази, тому будь-хто, хто її знає, отримає те саме число в себе. Порядок «спершу оголосили фразу, потім розіграш» зберігає й непередбачуваність: поки фразу не названо, результат не передбачить ніхто.
Як виходить справжня випадковість
Комп'ютер — машина, побудована заради передбачуваності, тому прохання видати справді непередбачуване число ставить його в незручне становище. Відповідей на неї дві, і різниця між ними важливіша, ніж прийнято думати.
Звідки береться непередбачуваність
Операційна система підтримує пул ентропії — резервуар шуму, зібраного з фізичних подій, які вона не може передбачити. Точні моменти натискань клавіш, дрижання переривань диска та мережі, коливання апаратних лічильників, а на сучасних процесорах ще й окрема інструкція, що знімає тепловий шум прямо всередині кремнію. Це не формула. Це вимірювання фізичного світу, і саме тому результат непередбачуваний, а не просто складний.
Генератор запитує байти з цього пулу через Web Crypto API викликом crypto.getRandomValues().
Те саме джерело браузер використовує для створення ключів шифрування, які захищають вашу банківську сесію.
Чому Math.random не годиться
Більшість швидких генераторів викликають Math.random(). Це зручно, швидко й являє собою
чисту арифметичну формулу з прихованим внутрішнім станом. Задайте їй стартове значення — і вона видасть
ту саму послідовність. Поспостерігайте за виводом досить довго — і стан можна відновити, після чого
всі майбутні значення відомі заздалегідь. Для перемішування фонових картинок це нормально. Для рішення, кому
дістанеться приз, — ні, і розробники браузерів прямо пишуть про це в документації.
Зсув при округленні, який майже ніхто не виправляє
Ось помилка, яка ховається на видноті. Припустимо, у вас є випадкові байти від 0 до 255, а потрібне число від 1 до 100. Очевидний хід — узяти залишок від ділення на 100 і додати одиницю. Виглядає невинно, але це неправильно: 256 не ділиться на 100 націло, тому значення з 1 до 56 випадають частіше, ніж з 57 до 100. Перекіс невеликий, приблизно один до двохсот, але він систематичний, він не усереднюється з часом і на великій вибірці стає цілком відчутним.
Ми обходимо це вибіркою з відбраковуванням: генератор відкидає значення, що потрапили в нерівний хвіст, і просто тягне заново. Це коштує кількох мікросекунд і дає розподіл, який рівномірний точно, а не приблизно.
Доказовий результат, коли на кону приз
Непередбачуваність і доказовість — протилежності, і отримати обидві одразу не можна. Хитрість у тому, щоб робити їх по черзі. Увімкніть «повторюваний розіграш», і генератор перестане брати ентропію з пулу, а виведе результат з кодової фрази, яку ви можете оголосити публічно.
Чесний спосіб цим користуватися — спершу оголосити фразу, потім провести розіграш. Наприклад, як фразу беруть ціну закриття акції на завтра або номер майбутнього тиражу лотереї. Поки фразу не названо, результату не знає ніхто, включно з вами, бо самого значення ще не існує. Коли воно стає публічним, ви проводите розіграш, а будь-який глядач вводить ту саму фразу в себе й отримує того самого переможця.
Якщо перевіряти руками глядачеві не потрібно, простіше увімкнути «захищений розіграш»: тоді число вибирає й підписує сервер, а вам достатньо дати посилання на сторінку з результатом.
Чому одне й те саме число випадає підряд
Це найчастіша претензія до всіх генераторів випадкових чисел, і майже завжди генератор тут ні до чого. Справжня випадковість збирається в купки. У неї немає пам'яті, тому немає й причини уникати значення, яке щойно випало. Киньте кубик шість разів — імовірність побачити всі шість граней лише близько півтора відсотка. Переважна ймовірність у тому, що щось повториться, а чогось не вистачить.
Людська інтуїція чекає рівної розсипки й приймає купчастість за несправність. Казино заробляють на цьому непорозумінні вже дуже давно. Якщо вам потрібно, щоб кожне значення трапилося рівно один раз, це інше завдання, і в нього свій режим: перемкніться на «без повторів», і генератор тягтиме без повернення, прибираючи кожне випале число з пулу.
Чудовий сервіс, дякую!
Часті питання
Чим рандомайзер відрізняється від генератора випадкових чисел?
Нічим, крім звички називати. Рандомайзер — розмовне слово для будь-якого інструмента, який вибирає варіант наосліп, а генератор випадкових чисел — рандомайзер, що вибирає серед цілих чисел діапазону. Якщо вибрати потрібно ім'я, а не число, візьміть рандомайзер для розіграшу призів: він працює зі списком учасників і видає посилання-доказ.
Це справді випадково чи тільки виглядає так?
Число береться з криптографічного пулу ентропії операційної системи через Web Crypto API — те саме джерело використовується для генерації ключів шифрування. Пул наповнюється фізичним шумом: таймінгами переривань і тепловим шумом заліза, а не формулою. Плюс застосовується вибірка з відбраковуванням, тому переведення у ваш діапазон не вносить перекосу.
Чи може хтось передбачити або підтасувати результат?
У звичайному режимі ні. Розіграш відбувається на вашому пристрої з використанням ентропії, якої ми не бачимо, і назовні нічого не йде. У режимі «повторюваний розіграш» результат навмисно стає відтворюваним — у цьому й сенс, — тому будь-хто, хто знає кодову фразу, отримає ту саму відповідь. Вмикайте цей режим лише якщо збираєтеся фразу оголошувати.
Чому одне й те саме число випало двічі підряд?
Тому що так виглядає випадковість. Кожен кидок незалежний і не пам'ятає попереднього, тому повтори та пропуски очікувані, а не підозрілі. Якщо потрібно, щоб кожне значення трапилося рівно один раз, перемкніться на режим без повторів.
Який діапазон максимально можливий?
Приблизно до дев'яти квадрильйонів в обидві сторони, від'ємні межі допустимі. Далі браузери втрачають точність у цілих числах, тому ми обмежуємо введення, а не повертаємо непомітно невірне число.
Це безкоштовно і чи потрібна реєстрація?
Безкоштовно, без обмежень і без акаунта. Сайт живе на рекламі, розміщеній збоку від інструмента. Платних тарифів немає, водяних знаків немає, розблоковувати нічого.
Чи працює без інтернету?
Так. Після завантаження сторінки зв'язок не потрібен, бо обчислення йде локально. Додайте сторінку на домашній екран — вона працюватиме і в літаку, і в підвалі.
Ви зберігаєте числа, які я генерую?
Ні. На сервер нічого не надсилається, тому й зберігати нічого. Статистика сесії та історія розіграшів лежать у локальному сховищі браузера й стираються при очищенні даних сайту.
Чи можна використовувати для розіграшу з реальним призом?
Так, і для цього краще взяти інструмент захищеного розіграшу, а не цю сторінку. Він фіксує список учасників відбитком до розіграшу й робить сторінку перевірки, яку глядачі подивляться самі.
Чим це відрізняється від генератора чисел у Google?
Google показує просту вертушку просто у видачі — дві межі й кнопка; саме її зазвичай і мають на увазі, коли шукають «гугл генератор чисел». Для числа до настільної гри цього вистачає, для решти вже ні. Тут є кілька чисел за раз, режим без повторів, повноекранний показ для аудиторії, вивантаження в CSV, статистика сесії та посилання-доказ для розіграшу з призом.