Módulo random

El módulo random es una librería que añade a Python funciones que generan y manejan números aleatorios.
Por ejemplo, la función randint de este módulo toma dos argumentos y devuelve un número entero al azar entre ellos (incluidos).
Prueba lo siguiente en el intérprete para simular el lanzamiento de un dado (¡te puede salir cualquier otro valor!):
>>> import random
>>> random.randint(1, 6)
6
Pero esto es solo un ejemplo más bien básico de lo que se puede hacer. Aquí aparece un listado más completo, que podéis usar cuando queráis. Eso sí, está en inglés; aseguraros de tener un buen traductor a mano para las palabras que no entendáis.

A continuación, una pequeña lista de los métodos más útiles del módulo random:


random.random()


Devuelve un número decimal, o float al azar entre 0 y 1.
>>> import random
>>> random.random()
0.37444887175646646


random.uniform(a, b)


Al igual que random.random, devuelve un número float aleatorio, entre a y b. Puede ser útil para calcular seleccionar la velocidad de un enemigo durante el juego, por ejemplo.
>>> import random
>>> random.uniform(5, 10)
9.6354960173606044
>>> random.uniform(5, 10)
6.0


random.randint(a, b)


Como se explicó al inicio de esta página, random.randint devuelve un valor entre a y b, que como habeis podido notar, es un número entero, o integer.

>>> import random
>>> random.randint(2, 8)
4


random.randrange(a, b, step)


Si os acordáis, podíamos mostrar los elementos de una lista según cierto orden (por ejemplo, solo los impares, o solo uno cada tres elementos, y demás). Bien, pues esto es lo mismo. Python escoge un número al azar entre a y b cada step. Por ejemplo:
>>> import random
>>> random.randrange(6, 20, 2)
8
En este ejemplo, solo podríamos obtener los números pares del 6 al 20). Atención, los argumentos deben ser siempre números enteros, por lo que el resultado siempre será un entero.

random.choice([a, b, c...])


Ahora esta función, en lugar de devolvernos un número, nos devuelve un elemento de una lista, seleccionado al azar. Puede resultar útil para que al matar un enemigo este deje caer munición, vida o lo que se os ocurra. Puede usarse también con tuplas, o con listas y tuplas almacenadas en variables.
>>> import random
>>> random.choice(['life', 'ammo', 'money', 'nothing'])
'money'
>>> random.choice(('Yes', 'No', 'Maybe'))
'No'
>>> zombieLot = ['life', 'ammo', 'money', 'nothing']
>>> random.choice(zombieLot)
'ammo'

random.shuffle([a, b, c...])


También trabaja con listas, de hecho, trabaja igual que random.choice pero aquí simplemente "desordena" los elementos.
>>> import random
>>> zombieLot = ['life', 'ammo', 'money', 'nothing']
>>> zombieLot = random.shuffle(zombieLot)
>>> zombieLot
['ammo', 'money', 'nothing', 'life']