Матеріали про випадкові числа: як працюють генератори і де вони помиляються

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

З чого почати

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

Де генератори непомітно помиляються

Надійне джерело випадковості — лише половина справи. Друга половина — перевести його сирі значення у ваш діапазон, і саме тут помиляється багато саморобних генераторів. Узяти остачу від ділення значення на розмір діапазону — очевидний підхід, але він дає ледь помітне зміщення: якщо розмір діапазону не ділить простір значень джерела націло, найменші числа діапазону випадають трохи частіше за решту. Ця вада називається зміщенням за модулем (modulo bias). Один зі способів її усунути — вибірка з відхиленням (rejection sampling): відкидати значення, що потрапили в нерівний «хвіст», і брати нові. Наш генератор так і робить, тож кожне число у вашому діапазоні має однаковий шанс за кожного розіграшу.

Ті самі міркування відсіюють і варіанти, до яких вдаються найперше. Math.random() нічого не обіцяє щодо безпеки, а функції електронних таблиць, як-от RAND() і RANDBETWEEN(), належать до того самого класу: вони годяться, щоб приблизно щось перемішати, але не для результату, який хтось може оскаржити.

Числа, списки й кубики

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

Готові спробувати інструмент?

Спробуйте безкоштовний інструмент «Генератор випадкових чисел» — він працює просто у вашому браузері.

Відкрити інструмент