Il modulo random in Python 🎲

Il modulo random di Python serve per generare numeri casuali o effettuare scelte casuali su insiemi di dati.
È molto usato in giochi, simulazioni, test, algoritmi probabilistici e attività didattiche.


Importazione del modulo

import random

Numeri casuali

random.random()

Genera un numero decimale casuale tra 0 e 1 (1 escluso):

x = random.random()
print(x)

Ristituisce un float. Esempio di output: 0.37444887175646646


random.randint(a, b)

Genera un numero intero casuale tra a e b (inclusi):

n = random.randint(1, 6)  # lancio di un dado
print(n)

Restituisce un int. Esempio di output: 4


random.randrange(start, stop, step)

Simile a range, ma restituisce un valore casuale:

n = random.randrange(0, 10, 2)
print(n)

Restituisce un int compreso tra start e stop-1, con passo step. Esempio di output: 6


Scelte casuali da liste

random.choice(lista)

Sceglie un elemento casuale:

colori = ["rosso", "verde", "blu"]
print(random.choice(colori))

Restituisce un singolo elemento dalla lista. Esempio di output: verde


random.sample(lista, k)

Estrae k elementi distinti:

numeri = [1, 2, 3, 4, 5]
print(random.sample(numeri, 3))

Restituisce una lista di elementi distinti. Esempio di output: [2, 5, 1]


random.choices(lista, k=...)

Estrae con possibilità di ripetizione:

print(random.choices(numeri, k=3))

Restituisce una lista di elementi, con possibili ripetizioni. Esempio di output: [4, 2, 4]


Mescolare una lista

random.shuffle(lista)

Mescola la lista modificandola direttamente:

carte = [1, 2, 3, 4, 5]
random.shuffle(carte)
print(carte)

Restituisce None, la lista viene modificata in loco. Esempio di output: [3, 1, 5, 2, 4]


Numeri casuali continui

random.uniform(a, b)

Numero decimale casuale tra a e b:

x = random.uniform(1.5, 3.5)
print(x)

Restituisce un float. Esempio di output: 2.678934567890123


random.gauss(mu, sigma)

Numero casuale secondo una distribuzione normale:

x = random.gauss(0, 1)
print(x)

Restituisce un float. Esempio di output: -0.3456789012345678


Riproducibilità: seed

random.seed(valore)

Imposta il seme per ottenere sempre gli stessi numeri casuali:

random.seed(42)
print(random.randint(1, 10))

Utile per debug e test.


Esempio completo

import random

studenti = ["Anna", "Luca", "Marco", "Sara"]
estratto = random.choice(studenti)

print("Studente estratto:", estratto)

Restituisce un singolo elemento dalla lista. Esempio di output: Studente estratto: Marco


Quando usare random

  • Giochi 🎮
  • Simulazioni
  • Estrazioni e sorteggi
  • Algoritmi probabilistici
  • Attività didattiche

📌 Nota: per applicazioni crittografiche non usare random, ma il modulo secrets.

Riepilogo delle funzioni principali

Funzione Estremo finale
randint(1, 50) ✅ incluso
randrange(1, 51) ✅ incluso
range(1, 50) ❌ escluso
random() 1 ❌ escluso