GCSE Computer Science

Python random numbers โ€” GCSE Computer Science

Why programs need randomness

Games need dice rolls and shuffled cards. Simulations need unpredictable events. Quizzes need a different question order each time. Anywhere a program needs to behave differently on different runs without the user telling it how, that's randomness.

Importing the random module

import random

import random has to be the first thing in the file, before any of the random module's functions are used. It only needs to appear once, at the top.

random.randint(a, b)

import random

dice_roll = random.randint(1, 6)
print(dice_roll)

random.randint(a, b) returns a random whole number between a and b โ€” and, unlike range(), both ends are included. random.randint(1, 6) can return 1, 2, 3, 4, 5, or 6. Every value has an equal chance.

random.random()

import random

value = random.random()
print(value)

random.random() returns a random decimal between 0.0 and 1.0, including 0.0 but never quite reaching 1.0. It's less common on GCSE papers than randint(), but useful for anything that needs a probability rather than a whole number.

A worked example: dice simulator

import random

roll = random.randint(1, 6)
print("You rolled a", roll)

A worked example: random choice from a list

import random

names = ["Alice", "Bob", "Charlie", "Dana"]
index = random.randint(0, len(names) - 1)
print(names[index])

random.randint(0, len(names) - 1) picks a random valid index for the list โ€” 0 to len(names) - 1 covers every position, because list indices are zero-based.

Common exam mistake

Assuming random.randint(1, 6) can return 0 or 7. Both endpoints are inclusive โ€” it only ever returns 1 through 6. This is the opposite of range(), where the end value is excluded, and exams test the contrast between the two directly.

What examiners actually test

Random number questions usually ask you to state the range of possible values a call to randint() or random() could return, or to write code that uses random numbers to simulate something โ€” a dice, a coin, a shuffled selection. The inclusive-both-ends rule for randint() is the detail most worth being certain of.

Python Coach covers hundreds of challenges taking students from their first print statement to advanced Python โ€” with progress tracking for every student.

Start your school's free trial →