How to use Random module in Python

share link

by gayathrimohan dot icon Updated: Sep 19, 2023

technology logo
technology logo

Solution Kit Solution Kit  

The random module in Python is a built-in library. That provides functions to generate random numbers and perform various randomization tasks.   

You can use it for a wide range of purposes, including: 

  • Random Number Generation: Using a " random " tool, you can create numbers. These numbers can be whole numbers or decimals. We use these numbers to select random elements from a sequence.  
  • Random Sampling: It helps in selecting random samples or shuffling data.   
  • Simulations: The module is handy for simulating random events. Games and simulations often use activities like rolling dice or flipping coins.  
  • Cryptographic Applications: Although not suitable for cryptographic security. You can use the secrets module and a part of random to generate secure random numbers.  
  • Probability Distributions: You can use it to make random numbers follow specific patterns. These patterns can be normal or exponential.  
  • Random Password Generation: We must make random, secure passwords to verify users.  

The Python random module provides various functions. We use these functions to generate different types of random numbers.   

Here are some of the key types:  

Random Floats in the Range [0.0, 1.0):  

  • random.random(): Returns a random floating-point number in the range [0.0, 1.0), i.e., including 0.0 but excluding 1.0.  

Random Integers in a Range:  

  • random.randint(a, b): Generates a random integer between a and b.  

Random Floats in a Range:  

  • random.uniform(a, b): The function random.uniform(a, b) generates a random decimal between a and b, including both a and b.  

Random Choices from Sequences:  

  • random.choice(seq): Selects a random element from a sequence seq.  
  • random.choices(seq, k=n): Returns a list of n random elements sampled with replacement from seq.  
  • random.sample(seq, k=n): Generates a list of n unique random elements. Sample from seq without replacement.  

Random Shuffling:  

  • random.shuffle(seq): It shuffles the elements of a sequence seq in place.  

Random Seed and Reproducibility:  

  • random.seed(seed): You can use random.seed(seed) to set a seed value for the random number generator. To replicate it, we reproduce random sequences.  

Random Numbers with Specific Distributions:  

  • random.gauss(mu, sigma): Generates random numbers following a normal distribution. To do this, we use the mean mu and standard deviation sigma.  
  • random.expovariate(lambd): Produces random numbers following an exponential distribution. The specified rate lambd does this.  
  • random.triangular(low, high, mode): Creates random numbers with a triangular distribution. Where the peak is at mode between low and high.  

To use the Python random module to generate reliable and consistent random numbers. You can follow these tips:  

  • Set a Seed: Use random.seed(seed_value) to initialize the random number generator. A fixed seed value does this.  
  • Use Secure PRNG: It is designed for cryptographic use cases.  
  • Save and Restore State: Save the generator using random.getstate(). Later, restore it with random.setstate(state).  
  • Generate Random Integers: To generate random integers, use random.randint(min, max). It falls within a range.  
  • Generate Random Floats: Use random.uniform(min, max) for generating random floating-point numbers. It falls within a range. Use random.random() for random floats between 0.0 and 1.0.  
  • Shuffle Sequences: To shuffle a list or other items, use random.shuffle(sequence).  
  • Pick Random Elements: Use random.choice(sequence) to select a random element.  
  • Choose with Weights: For weighted random selections, use random.choices(population, weights, k).  
  • Simulate Probabilities: To simulate events with specific probabilities, use random.choices(). It would help if you used it with appropriate weights.  
  • Avoid Changing the Seed: To get different random numbers while running the program.  

In conclusion, Using the Python random module is crucial for generating reliable. These are consistent random numbers in your code. It provides various functions and algorithms. They design those to produce pseudorandom numbers. Those are essential for various applications like simulations, games, and cryptography. By relying on this module, you can ensure reproducibility, control, and statistical quality. You can ensure these in your random number generation. You can make your programs more dependable and predictable. So, always leverage the Python random module. You do this to maintain the integrity and consistency of your random processes.   

Fig: Preview of the output that you will get on running this code from your IDE.


In this solution we are using Random library of Python.


Follow the steps carefully to get the output easily.

  1. Download and Install the PyCharm Community Edition on your computer.
  2. Open the terminal and install the required libraries with the following commands.
  3. Install Random - pip install random.
  4. Create a new Python file on your IDE.
  5. Copy the snippet using the 'copy' button and paste it into your python file.
  6. Run the current file to generate the output.

I hope you found this useful.

I found this code snippet by searching for 'How to use Random module in Python' in Kandi. You can try any such use case!

Environment Tested

I tested this solution in the following versions. Be mindful of changes when working with other versions.

  1. PyCharm Community Edition 2023.1
  2. The solution is created in Python 3.11.1 Version
  3. each v0.0.6 Version
  4. formats v0.1.0a3 Version

Using this solution, we can able to use Random module in Python with simple steps. This process also facilities an easy way to use, hassle-free method to create a hands-on working version of code which would help us to use Random module in Python.

Dependent Libraries

eachby DRMacIver

Python doticonstar image 9 doticonVersion:Currentdoticon
License: Others (Non-SPDX)

A small batch processing utlity


            eachby DRMacIver

            Python doticon star image 9 doticonVersion:Currentdoticon License: Others (Non-SPDX)

            A small batch processing utlity

                      formatsby redodo

                      Python doticonstar image 6 doticonVersion:v0.1.0a3doticon
                      License: Permissive (MIT)

                      Support multiple formats with ease.


                                formatsby redodo

                                Python doticon star image 6 doticonVersion:v0.1.0a3doticon License: Permissive (MIT)

                                Support multiple formats with ease.

                                          You can search for any dependent library on kandi like 'each' and 'formats'.


                                          1. For any support on kandi solution kits, please use the chat
                                          2. For further learning resources, visit the Open Weaver Community learning page


                                          1. How does the random number generator work in Python's random module?  

                                          Python's random module uses a PRNG based on the Mersenne Twister algorithm. Here's a simplified overview of how it works:  

                                          • Seed: The PRNG starts with an initial seed value. If you don't specify a seed, it is based on system time.  
                                          • State: The PRNG initializes its internal state using the seed. This state is a large array of numbers.  
                                          • Generation: The PRNG uses its internal state to generate a pseudorandom number. People use mathematical formulas to do this.  
                                          • Updating State: The PRNG updates its internal state. We ensure that later numbers are different.  
                                          • Repeatability: If you use the same seed, you'll get the same sequence of random numbers. This can be useful for reproducibility in scientific simulations or testing.  

                                          2. What are the advantages of using a floating-point number to generate random numbers?  

                                          Floating-point numbers offer several advantages when generating random numbers:  

                                          • Precision  
                                          • Range  
                                          • Uniformity  
                                          • Compatibility  
                                          • Flexibility  

                                          3. Why is the Mersenne Twister random number generator used in Python's random module?  

                                          Python's random module uses this random number generator for several reasons: 

                                          • Good Randomness: This makes it suitable for a wide range of applications.  
                                          • Reproducibility: This is useful for debugging and reproducibility in scientific research.  
                                          • Speed: The Mersenne Twister strikes a balance between speed and randomness quality.  
                                          • Long Period: The Mersenne Twister has a very long period.  

                                          4. How can Python's random module generate Integers?  

                                          You can generate integers with Python's random module using the randint() function.   

                                          Here's an example:  

                                          import random  

                                          # Generates a random integer between 1 and 10 random_integer = random.randint(1, 10)  


                                          This code generates a random integer between 1 and 10. This will store it in the random_integer variable. You can change the range by changing the arguments to randint().  

                                          5. Are pseudorandom generators used in Python's Random Module, and if so, why?   

                                          Yes, Python's Random Module uses pseudorandom number generators (PRNGs). People use PRNGs because they provide a deterministic sequence of random numbers. Based on an initial seed value, the system generates these random numbers. This determinism is useful for various applications. Those apps are like simulations, games, and cryptography, where reproducibility is important. Python's random module uses the Mersenne Twister PRNG algorithm by default. This PRNG algorithm offers a good balance between randomness and performance.  

                                          See similar Kits and Libraries