# Generate 'n' unique random numbers within a range [duplicate]

If you just need sampling without replacement:

`>>> import random>>> random.sample(range(1, 100), 3)[77, 52, 45]`

random.sample takes a population and a sample size `k`

and returns `k`

random members of the population.

If you have to control for the case where `k`

is larger than `len(population)`

, you need to be prepared to catch a `ValueError`

:

`>>> try:... random.sample(range(1, 2), 3)... except ValueError:... print('Sample size exceeded population size.')... Sample size exceeded population size`

Generate the range of data first and then shuffle it like this

`import randomdata = range(numLow, numHigh)random.shuffle(data)print data`

By doing this way, you will get all the numbers in the particular range but in a random order.

But you can use `random.sample`

to get the number of elements you need, from a range of numbers like this

`print random.sample(range(numLow, numHigh), 3)`