Python Random Module
The Python random module is a built-in module used to generate random values and introduce unpredictability into Python programs. It is useful for many programming tasks, including generating random numbers, selecting random elements, shuffling lists, creating simulations, and developing simple games.
Because the module is included with Python, it can be imported directly without installing an additional package. In this article, we will explore several important functions of the Python random module, including random(), randint(), randrange(), choice(), and shuffle(). We will also create a simple Rock-Paper-Scissors game using random number generation.
Table of Contents

What is the Python random Module?
The random module provides functions for generating pseudo-random numbers and selecting or rearranging values. These functions make it possible to add dynamic behavior to applications where the result should vary between executions.
For example, a program can use the module to simulate a dice roll, select a random item from a list, generate a random number for a game, or change the order of items in a collection.
To use the module, simply import it:
import random
After importing it, you can call the required function using the random module.
1. The random() Function
The random.random() function generates a random floating-point number between 0.0 and 1.0. It does not require any arguments, making it one of the simplest ways to generate a random decimal value.
Example
# Generating a random float
import random
num = random.random()
print(num)
Output:
0.3232640977876686
The exact output can be different each time the program is executed because the value is generated randomly. The returned value is a floating-point number in the specified range.
2. The randint() Function
The random.randint() function is useful when you need to generate a random integer within a specified range. It accepts two arguments representing the beginning and ending values of the range. Both endpoints are included.
Example
# Producing an arbitrary integer from 1 to 500
import random
num = random.randint(1, 500)
print(num)
Output:
215
The output can be any integer from 1 through 500. This function is especially useful in programs that need random whole numbers, such as games and simulations.
Download New Real Time Projects: Click here
3. The randrange() Function
The random.randrange() function provides more control over random integer generation. It can accept start, stop, and step values, allowing you to select a random number from a specific sequence.
The default value for start is 0, while the default value for step is 1. The stop value is not included in the generated range.
Example
# Generating values within a specific range
import random
num1 = random.randrange(1, 10)
num2 = random.randrange(1, 10, 2)
print(num1, num2)
Output:
4
9
In the second call, the step value of 2 means the function selects from values that follow the specified step pattern.
4. The choice() Function
The random.choice() function selects one random element from a non-empty sequence. The sequence can be a string, list, tuple, or another supported sequence.
This function is useful when a program needs to randomly select one item from a collection.
Example
# Selecting a random element
import random
random_char = random.choice('Random Module')
print(random_char)
random_num = random.choice([23, 54, 765, 23, 45, 45])
print(random_num)
random_tuple = random.choice((12, 64, 23, 54, 34))
print(random_tuple)
Output:
M
765
54
Since each selection is random, the output may be different when the program runs again. The function is helpful when randomly selecting characters, numbers, or other items.
5. The shuffle() Function
The random.shuffle() function randomly changes the order of elements in a list. It is useful when the original list needs to be rearranged into a random order.
For example, it can be used to shuffle cards, mix game elements, or randomly reorder items in a list.
Example
# Shuffling elements in a list
import random
list1 = [34, 23, 65, 86, 23, 43]
random.shuffle(list1)
print(list1)
Output:
[23, 43, 86, 65, 34, 23]
The order of the elements can change every time the program runs. The list itself is rearranged by the function.
Rock-Paper-Scissors Game Using random
The functions of the random module can be combined to create interactive programs. A simple example is a Rock-Paper-Scissors game in which the computer randomly selects Rock, Paper, or Scissors.
The following program uses random.randint() to generate the computer’s choice:
# Rock-Paper-Scissors Game
import random
def start_game():
print("Welcome to Rock-Paper-Scissors!")
print("1: Rock\n2: Paper\n3: Scissors")
user_choice = int(input("Select an option (1-3): "))
machine_choice = random.randint(1, 3)
choices = ["Rock", "Paper", "Scissors"]
print(f"Machine chose: {choices[machine_choice - 1]}")
if user_choice == machine_choice:
print("It's a tie!")
elif (user_choice == 1 and machine_choice == 3) or \
(user_choice == 2 and machine_choice == 1) or \
(user_choice == 3 and machine_choice == 2):
print("You won!")
else:
print("The machine won.")
if input("Play again? (yes/no): ").lower() == "yes":
start_game()
start_game()
In this game, the user selects an option from 1 to 3. The computer generates its selection using random.randint(1, 3). The program then compares both choices and displays the result.
This example demonstrates how random number generation can make a Python program more interactive and unpredictable.
Additional random Module Functions
The Python random module provides several other functions that can be useful for different programming requirements.
seed(a=None, version=2): Initializes the random number generator using an optional seed value.getstate(): Returns the current internal state of the random number generator.setstate(state): Restores the random number generator to a previously saved state.getrandbits(k): Generates an integer containing the requested number of random bits.uniform(a, b): Returns a random floating-point value within the specified range.normalvariate(mu, sigma): Generates a random floating-point value based on a normal distribution.
Common Uses of the Python random Module
The random module can be useful in different types of Python programs where varying or unpredictable values are required. Some common applications include generating random numbers, selecting values from collections, shuffling lists, creating games, and performing simulations.
For example, randint() can be used when a program requires a random integer, while choice() can select one item from a sequence. Similarly, shuffle() can rearrange the elements of a list into a random order.
Complete Advance AI Topics: Click Here
SQL Tutorial: Click Here
YT:- DecodeIT
Conclusion
The Python random module provides a convenient collection of functions for adding randomness to Python programs. Functions such as random(), randint(), randrange(), choice(), and shuffle() cover several common randomization requirements.
Additional functions such as seed(), getstate(), setstate(), getrandbits(), uniform(), and normalvariate() provide further options for working with random values. By understanding these functions, developers can create more dynamic programs, simulations, and interactive games in Python.
FAQs
1. What is the random module in Python?
The random module is a built-in Python module that provides functions for generating pseudo-random numbers and randomly selecting or rearranging values.
2. How do you import the random module?
You can import it using the following statement:
import random
3. What does random.random() return?
random.random() returns a random floating-point number between 0.0 and 1.0.
4. What is the difference between randint() and randrange()?
randint() generates an integer between two inclusive endpoints, while randrange() allows a start, stop, and optional step value, with the stop value excluded.
5. How do you select a random item from a list?
You can use random.choice() to select one random element from a non-empty list.
6. What does random.shuffle() do?
random.shuffle() randomly changes the order of elements in a list.
7. Can the random module generate floating-point numbers?
Yes. Functions such as random.random() and random.uniform() can be used to generate random floating-point values.
8. What is random.seed() used for?
random.seed() initializes the random number generator with a specified seed, which can be useful when controlled or repeatable random sequences are required.
Keywords: Python Random Module, random module in Python with example, Python random randint, Python random float, Python random number, Python random number in range, Python random choice, Python random shuffle, Python random uniform, random sample Python, Python random module tutorial