Генератор випадкових чисел
Параметри
Вихідні дані
Технічні деталі
Як працює генератор випадкових чисел
Що робить інструмент
Генератор випадкових чисел створює криптографічно стійкі випадкові цілі числа або числа з рухомою комою, використовуючи Web Crypto API (crypto.getRandomValues). Він застосовує відбір із відхиленням (rejection sampling), щоб усунути модульне зміщення та забезпечити рівномірний розподіл у будь-якому заданому діапазоні. Ви можете генерувати поодинокі значення або пакети випадкових чисел із налаштовуваними мінімумом, максимумом і точністю.
Поширені сценарії використання для розробників
Розробники використовують криптографічні генератори випадкових чисел для завдань, чутливих до безпеки, як-от генерація невгадуваних токенів сесій, nonce, лотерейних виборів або випадкової вибірки з наборів даних. Розробники ігор застосовують їх для кидків кубиків і процедурної генерації, коли важлива справедливість. QA-інженери генерують випадкові тестові вхідні дані для фазз-тестування, а дата-сайєнтисти використовують їх для випадкової вибірки, коли відтворюваність не потрібна.
Формати даних, типи або варіанти
Інструмент підтримує генерацію цілих чисел у довільному діапазоні (включно з межами) та генерацію чисел з рухомою комою з налаштовуваною десятковою точністю. Відбір із відхиленням відкидає значення, які спричинили б модульне зміщення, коли діапазон не ділить рівномірно простір вихідних значень джерела випадковості. Базова ентропія надходить із CSPRNG операційної системи (CryptGenRandom у Windows, /dev/urandom у Unix), доступного через Web Crypto API браузера.
Поширені помилки та крайові випадки
Криптографічна випадковість повільніша за Math.random() і не потрібна для несек’юрних сценаріїв на кшталт перемішування плейлиста. Відбір із відхиленням теоретично може багаторазово повторюватися для патологічних діапазонів, хоча на практиці це незначно. Випадкові числа, згенеровані в браузері, не можна ініціалізувати seed’ом для відтворюваності — якщо вам потрібні детерміновані послідовності для тестування, використовуйте PRNG із seed’ом. Максимальний безпечний діапазон цілих чисел обмежений JavaScript Number.MAX_SAFE_INTEGER (2^53 - 1).
Коли використовувати цей інструмент, а коли — код
Використовуйте цей браузерний інструмент, коли вам потрібне швидке неупереджене випадкове число для разового рішення, ручного тестування або перевірки того, що ваша реалізація видає значення в очікуваних діапазонах. Для продакшн-використання викликайте crypto.getRandomValues() безпосередньо у своєму коді або використовуйте вбудовані в мову функції CSPRNG (модуль secrets у Python, SecureRandom у Java), які інтегруються з обробкою помилок і логуванням вашого застосунку.