Оставить отзыв
Привет! Что думаешь?

Перетащите его сюда или вставьте через Ctrl+V


    Вы также можете написать нам по адресу infocalculat.io

    Рандомайзер чисел

    Случайное целое число между двумя границами

    Рандомайзер чисел

    Случайное число от
    до

    Как работает рандомайзер чисел

    Популярные диапазоны

    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, где обе границы включены,

    N = max − min + 1

    целых чисел, и честный генератор даёт каждому одинаковый шанс P = 1 / N. Про «+ 1» чаще всего и забывают: от 1 до 100 — это 100 чисел, а не 99, потому что считаются оба края. Если повторы разрешены, броски независимы, и шанс, что конкретное число выпадет хотя бы раз за k бросков, равен

    1 − (1 − 1/N)k

    — он переваливает за 50% примерно через 0,69 × N бросков (ln 2 ≈ 0,693), а не через N / 2.

    Как вытягивается число — по шагам

    1. Браузер заполняет 32-битное слово из crypto.getRandomValues() — значение от 0 до 4 294 967 295.
    2. Слова, не меньшие ⌊232 / N⌋ × N, отбрасываются и тянутся заново. Отсечка делает пространство ровно кратным N; без неё остаток от деления слегка благоволил бы малым числам.
    3. Оставшееся слово делится на N, и остаток прибавляется к min. Для нескольких разных чисел генератор частично тасует диапазон (Фишер — Йетс), поэтому каждое число может выпасть только один раз.

    Почему не Math.random()

    Math.random() — быстрый генератор общего назначения: стандарт языка не требует от него непредсказуемости, и браузеры реализуют его алгоритмами, чей следующий выход можно восстановить по предыдущим. crypto.getRandomValues() — криптографически стойкий источник браузера, засеваемый операционной системой, тот самый, из которого берутся ключи шифрования. Запасного пути нет: браузер без него получит сообщение, а не более слабое число.

    Как читать результат

    ДиапазонЦелых чиселШанс каждого числа Бросков до 50%
    1–2250%1
    1–66≈16,67%4
    1–101010%7
    1–20205%14
    1–1001001%69
    1–1 0001 0000,1%693
    1–10 00010 0000,01%6 932

    «Бросков до 50%» — сколько независимых бросков нужно, чтобы одно конкретное число выпало хотя бы раз с шансом не меньше половины. Прошлые броски ничего не меняют: число, которое давно не выпадало, не становится «должным».

    Для чего его используют

    • Розыгрыши и конкурсы: пронумеруйте участников и вытяните победителя от 1 до их количества.
    • Числа «как в лотерее»: несколько разных чисел сразу с отметкой «Без повторов», при желании по порядку.
    • Игры: замена кубику — от 1 до 6 для обычного, от 1 до 20 для d20.
    • Уроки и собрания: выбрать, чья очередь, по номеру в списке.
    • Выборка: решить, какие строки, товары или респонденты попадут в случайную выборку.
    • Спор без победителя: когда все варианты одинаково хороши, пусть решит число.

    Ограничения и оговорки

    • Алгоритм, а не физический процесс. Числа дают криптографически стойкий генератор псевдослучайных чисел: на практике непредсказуемый, но вычисляемый. Сервисы вроде random.org берут случайность из физического шума; в бытовых розыгрышах разницы не увидеть.
    • Только целые числа от 0 до 1 000 000; нижняя граница должна быть меньше верхней.
    • До 1 000 чисел за раз, а без повторов — не больше, чем есть в диапазоне.
    • Ничего не сохраняется. История живёт только в этой вкладке; для жеребьёвки, которую нужно засвидетельствовать или проверить, следуйте процедуре из ваших правил.

    Смотрите также

    Последние расчеты

    FAQ

    Как генератор выбирает случайное число?

    Он берёт у браузера 32-битное случайное значение из crypto.getRandomValues() и переводит его в диапазон. Значения из неполного последнего блока 32-битного пространства отбрасываются и вытягиваются заново (метод отбраковки), поэтому у каждого числа диапазона ровно одинаковый шанс, а малые числа не получают незаметного перевеса.

    Входят ли границы в диапазон?

    Да. В диапазоне от 1 до 100 ровно 100 целых чисел, и 1 и 100 выпадают так же часто, как 50. В общем виде от min до max помещается max − min + 1 чисел, и шанс каждого — один из этого количества.

    Можно ли вытянуть несколько чисел без повторов?

    Да. Укажите, сколько чисел нужно, и отметьте «Без повторов»: тогда генератор тянет числа без возвращения, как шары из лототрона, и ни одно не выпадет дважды. Без повторов нельзя попросить больше чисел, чем есть в диапазоне.

    Насколько случайно это число?

    Криптографический генератор браузера получает начальное значение из энтропии операционной системы и устроен так, чтобы его выход нельзя было предсказать, — из того же источника берутся ключи шифрования. Но это всё же алгоритм, а не физический процесс; для официальной жеребьёвки с протоколом используйте процедуру, которую требуют ваши правила.