[python] Python: Generate random number between x and y which is a multiple of 5

I've read the manual for pseudo-randomness in Python, and to my knowledge, you can only generate numbers up to a given maximum value, i.e. 0-1, 0-30, 0-1000, etc. I want to:

  • a) Generate a number between two ints, i.e. 5-55, and
  • b) Only include multiples of 5 (or those ending in 5 or 0, if that's easier)

I've looked around, and I can't find anywhere that explains this.

This question is related to python random

The answer is


If you don't want to do it all by yourself, you can use the random.randrange function.

For example import random; print random.randrange(10, 25, 5) prints a number that is between 10 and 25 (10 included, 25 excluded) and is a multiple of 5. So it would print 10, 15, or 20.


>>> import random
>>> random.randrange(5,60,5)

should work in any Python >= 2.


The simplest way is to generate a random nuber between 0-1 then strech it by multiplying, and shifting it.
So yo would multiply by (x-y) so the result is in the range of 0 to x-y,
Then add x and you get the random number between x and y.

To get a five multiplier use rounding. If this is unclear let me know and I'll add code snippets.