To generate N unique random numbers within a range in Python, you can use the random.sample(), random.shuffle(), or random.randint() functions. Let’s learn how to use them.
Generate N Unique Random Numbers Within A Range In Python
Using the random.sample() function
You can use the random.sample() function to generate N unique random numbers within a range in Python. But note that, you have to assign N as less or equal to the number of elements in a range. If not, you will get an Error.
Look at the example below.
import random def random_n_unique_numbers(start, end, n): # Create a range. my_range = range(start, end) # Generate N Unique Random Numbers Within A Range with the random.sample() function. result = random.sample(my_range, n) print(result) # Generate 7 unique random numbers between 1 and 10. random_n_unique_numbers(1, 10, 7) # Generate 7 unique random numbers between 1 and 100. random_n_unique_numbers(1, 100, 7)
Output
[5, 2, 1, 6, 7, 9, 4]
[21, 24, 57, 65, 49, 32, 64]
Using the random.shuffle() function
Besides the random.sample() function, you can use the random.shuffle() function to generate N unique random numbers within a range. Unlike the random.sample() function, we will random a list of a range first. Then, we will get the first n elements of the new list.
Look at the example below.
import random def random_n_unique_numbers(start, end, n): # Create a range. my_range = range(start, end) # Generate N Unique Random Numbers Within A Range with the random.sample() function. result = random.sample(my_range, n) print(result) # Generate 7 unique random numbers between 1 and 10. random_n_unique_numbers(1, 10, 7) # Generate 7 unique random numbers between 1 and 100. random_n_unique_numbers(1, 100, 7)
Output
[9, 2, 3, 8, 6, 1, 4]
[81, 26, 44, 62, 97, 29, 14]
Using the random.randint() function
In addition, you can use the random.randint() function combined with the set data structure to generate N unique random numbers within a range. We will use the random.randint() function until the size of the set is N.
Look at the example below.
import random def random_n_unique_numbers(start, end, n): # Create a range. my_range = range(start, end) # Generate N Unique Random Numbers Within A Range with the random.sample() function. result = random.sample(my_range, n) print(result) # Generate 7 unique random numbers between 1 and 10. random_n_unique_numbers(1, 10, 7) # Generate 7 unique random numbers between 1 and 100. random_n_unique_numbers(1, 100, 7)
Output
[1, 4, 5, 6, 7, 9, 10]
[65, 35, 38, 75, 76, 13, 95]
Besides, you can learn how to generate random numbers in the range excluding some numbers here.
Summary
We have shown you how to generate N unique random numbers within a range in Python in 3 ways. Personally, you should use the random.sample() or random.shuffle() functions because they have higher performance than the random.randint() function in this case. Leave your comment below if you have any questions. Thanks!

My name is Thomas Valen. As a software developer, I am well-versed in programming languages. Don’t worry if you’re having trouble with the C, C++, Java, Python, JavaScript, or R programming languages. I’m here to assist you!
Name of the university: PTIT
Major: IT
Programming Languages: C, C++, Java, Python, JavaScript, R