### Random numbers

Sometimes when programming it's helpful to use random numbers. For example, we might want to:

- simulate a dice roll
- choose letters at random
- pick a random number between 0 and 100

Python provides a set of built-in tools, through the `random`

module, that help find random-ish numbers. We'll check them out in the next section.

### Random-ish numbers?

What's "random-ish" mean? Well, these numbers aren't truly random; computers are so deterministic that they can't *actually* act randomly, so we simply ask them to behave as close to random as possible.

We ask them to do this with a bunch of math; if you're curious for how this works, the Wikipedia article about the Mersenne Twister is a good place to start.

### Getting random numbers

To start, type `import random`

, which will import the random module. This is the way you import, or add, Python's pre-made random tools into your project.

If you didn't import these tools, you'd have to make them yourself, and trust me: it's much more fun to *use* random numbers than to come up with them.

## Random numbers between 0 and 1

To get your first random number, type `random.random()`

:

Try typing it a few more times. This'll give you back different numbers between 0 and 1 - at random.

## Random numbers between any two numbers

If you'd like to get a random number from another range – say, between 0 and 10 – you'll have to *transform* what `random.random()`

gives back.

To get a random number between 0 and 100, we'll have to multiply `random.random()`

by 100:

For a random number between 50 and 100, we'll have to multiply `random.random()`

by 50 and then add 50:

## Random whole numbers between any two numbers

If you thought that transforming `random.random()`

numbers with addition and multiplication was a bit tedious, you're right – and there's an easier way!

There's another random tool, called `randrange`

(short for "random range") that will return random numbers from a specific set of numbers:

`random.randrange(4,100)`

will give you back a random number between `4`

and `100`

`random.randrange(-39,-9)`

will give you back a random number between `-39`

and `-9`

- ... and on and on, so long as you put the smaller number before the larger number in the parentheses:

Another advantage of `randrange`

? It returns whole numbers, rather than decimals!

## Challenge

In the console below:

- import the
`random`

module
- find a few random numbers between 5 and 25
- find another random number between 100 and 200