Подробнее
В Python случайные числа выдаёт встроенный модуль random. Функция random.randint(a, b) возвращает случайное целое от a до b включительно: random.randint(1, 100) даст число от 1 до 100. Функция random.random() возвращает дробное число от 0.0 до 1.0, а random.uniform(a, b) — дробное в произвольном диапазоне. Чтобы выбрать случайный элемент из списка, используют random.choice(seq), а чтобы получить несколько неповторяющихся — random.sample(seq, k); перемешать список на месте помогает random.shuffle(lst). Типичный пример: import random; print(random.randint(1, 6)) — имитация броска кубика. Важная тонкость: модуль random основан на алгоритме Mersenne Twister — он быстрый и хорош для симуляций и игр, но не криптостойкий и не подходит для паролей, токенов и ключей. Для безопасности в Python есть отдельный модуль secrets: secrets.randbelow(n) даёт целое от 0 до n-1, а secrets.token_hex(16) — случайную шестнадцатеричную строку для токена. Ещё можно задать зерно через random.seed(x) — тогда последовательность будет воспроизводимой, что удобно для тестов. Онлайн-генератор выше пригодится, чтобы быстро проверить, какие значения даёт нужный диапазон, или получить тестовый набор чисел, не запуская интерпретатор; он работает в браузере на crypto.getRandomValues (аналог модуля secrets).