Link Search Menu Expand Document

Random Functions

Randomness is a really important and useful topic in programming. It can be used to do simple things like choose which player goes first in a game, or draw a random card from a deck. It can also be used for critically important processes like allowing a user to reset a forgotten password.

All of this code uses functions from the random module, which is included in the Python Standard Library. You might be curious to look at the documentation for the random module.


Generating a random number between 0 and 1

The following code generates a random number between 0 and 1. The number may be 0, but it will always be less than 1:

from random import random

random_num = random()
print(random_num)
0.32763594489253733

Generating a random integer

If you want a single random number from a certain range, use the randint() function. The function will return a random number in the given range, including the upper and lower bound you specify.

from random import randint

random_int = randint(1, 6)
print(rand_int)
3

Choosing a random element from a list

If you want to choose a single random element from a list, use the choice() function. The selected element is not removed from the list.

from random import choice

players = ['charles', 'martina', 'michael', 'florence', 'eli']
random_player = choice(players)
print(random_player)
charles

Putting a list in random order

To put a list into random order, use the shuffle() function.

from random import shuffle

players = ['charles', 'martina', 'michael', 'florence', 'eli']
shuffle(players)

print(players)
['florence', 'eli', 'charles', 'martina', 'michael']

This function changes the order of the list, and you can’t get the original order back. If you want to keep the original order, pass a copy of the list to the shuffle() function:

from random import shuffle

players = ['charles', 'martina', 'michael', 'florence', 'eli']

shuffled_players = players[:]
shuffle(shuffled_players)

print(players)
print(shuffled_players)
['charles', 'martina', 'michael', 'florence', 'eli']
['martina', 'eli', 'charles', 'michael', 'florence']