Рандомайзер чисел
Случайное целое число между двумя границами
Рандомайзер чисел
Как работает рандомайзер чисел
Популярные диапазоны
1–10 · 1–100 · 1–6 · 1–2 · 1–3 · 1–4 · 1–5 · 1–20 · 1–50 · 1–1 000 · 0–9 · 0–1 · 1–60 · 1–12 · 1–30 · 1–8 · 1–25 · 1–365 · 1–10 000 · 0–100 · 1–200 · 1–500 · 1–40 · 0–10
Формула любого диапазона
В диапазоне от min до max, где обе границы включены,
целых чисел, и честный генератор даёт каждому одинаковый шанс P = 1 / N. Про «+ 1» чаще всего и забывают: от 1 до 100 — это 100 чисел, а не 99, потому что считаются оба края. Если повторы разрешены, броски независимы, и шанс, что конкретное число выпадет хотя бы раз за k бросков, равен
— он переваливает за 50% примерно через 0,69 × N бросков (ln 2 ≈ 0,693), а не через N / 2.
Как вытягивается число — по шагам
- Браузер заполняет 32-битное слово из
crypto.getRandomValues()— значение от 0 до 4 294 967 295. - Слова, не меньшие
⌊232 / N⌋ × N, отбрасываются и тянутся заново. Отсечка делает пространство ровно кратным N; без неё остаток от деления слегка благоволил бы малым числам. - Оставшееся слово делится на N, и остаток прибавляется к min. Для нескольких разных чисел генератор частично тасует диапазон (Фишер — Йетс), поэтому каждое число может выпасть только один раз.
Почему не Math.random()
Math.random() — быстрый генератор общего назначения: стандарт языка не требует от него непредсказуемости, и браузеры реализуют его алгоритмами, чей следующий выход можно восстановить по предыдущим. crypto.getRandomValues() — криптографически стойкий источник браузера, засеваемый операционной системой, тот самый, из которого берутся ключи шифрования. Запасного пути нет: браузер без него получит сообщение, а не более слабое число.
Как читать результат
| Диапазон | Целых чисел | Шанс каждого числа | Бросков до 50% |
|---|---|---|---|
| 1–2 | 2 | 50% | 1 |
| 1–6 | 6 | ≈16,67% | 4 |
| 1–10 | 10 | 10% | 7 |
| 1–20 | 20 | 5% | 14 |
| 1–100 | 100 | 1% | 69 |
| 1–1 000 | 1 000 | 0,1% | 693 |
| 1–10 000 | 10 000 | 0,01% | 6 932 |
«Бросков до 50%» — сколько независимых бросков нужно, чтобы одно конкретное число выпало хотя бы раз с шансом не меньше половины. Прошлые броски ничего не меняют: число, которое давно не выпадало, не становится «должным».
Для чего его используют
- Розыгрыши и конкурсы: пронумеруйте участников и вытяните победителя от 1 до их количества.
- Числа «как в лотерее»: несколько разных чисел сразу с отметкой «Без повторов», при желании по порядку.
- Игры: замена кубику — от 1 до 6 для обычного, от 1 до 20 для d20.
- Уроки и собрания: выбрать, чья очередь, по номеру в списке.
- Выборка: решить, какие строки, товары или респонденты попадут в случайную выборку.
- Спор без победителя: когда все варианты одинаково хороши, пусть решит число.
Ограничения и оговорки
- Алгоритм, а не физический процесс. Числа дают криптографически стойкий генератор псевдослучайных чисел: на практике непредсказуемый, но вычисляемый. Сервисы вроде random.org берут случайность из физического шума; в бытовых розыгрышах разницы не увидеть.
- Только целые числа от 0 до 1 000 000; нижняя граница должна быть меньше верхней.
- До 1 000 чисел за раз, а без повторов — не больше, чем есть в диапазоне.
- Ничего не сохраняется. История живёт только в этой вкладке; для жеребьёвки, которую нужно засвидетельствовать или проверить, следуйте процедуре из ваших правил.
Смотрите также
- Колесо фортуны - Рандомайзер имён и колесо решений — крутаните, и оно выберет за вас
- Конвертер процентов в вероятности - Конвертация процента в вероятность события "1 из X"