random Module: Sampling, Shuffling, and Reproducible SeedsPython's random module generates pseudo-random numbers for games, simulations, A/B splits, and test fixtures. Because it uses the Mersenne Twister algorithm, numbers look random and can be reproduced identically when you set a fixed seed.
Never use random for passwords, session tokens, or API keys—use Python's cryptographically secure secrets module for anything security-sensitive.
Use randint(a, b) for inclusive integers, choice() for one item, sample() for unique picks without replacement, and shuffle() to randomize a list in place.
import random
random.seed(42) # Optional: makes output reproducible for tests
dice = random.randint(1, 6)
team = ["Amina", "Leo", "Tariq", "Maya"]
winner = random.choice(team)
pair = random.sample(team, k=2)
random.shuffle(team)
print(dice, winner, pair, team)
random vs secrets for TokensFor OTP codes, password reset links, or API keys, always import Python's secrets module instead of random. Unlike Mersenne Twister, secrets pulls entropy directly from the operating system's cryptographic random source.
import secrets
token = secrets.token_urlsafe(16)
print(token)
random.shuffle(items) to return a new list: .shuffle() mutates items in place and returns None.randint(1, 10) and randrange(1, 10): randint(1, 10) can return 10 (inclusive), whereas randrange(1, 10) stops at 9.random: Mersenne Twister state can be predicted after observing outputs; always use secrets.random.seed()?Set random.seed(42) inside automated tests, benchmarks, or machine learning scripts when you want identical random splits on every run. Omit it in games and production randomness.
random.choices() and random.sample()?random.choices(items, k=3) picks with replacement (duplicates possible and supports weights=), while random.sample(items, k=3) picks unique items without replacement.
random.sample() pick more items than exist in the list?No. Requesting k > len(items) raises ValueError.
Sign in to track your learning journey, earn industry-recognized certificates, and join our elite developer community.
Quick Access With
Experiment with the code from this lesson in our interactive playground.
You've completed this section! Take a quick 5-question quiz to check your understanding.