Description

randomSeed() initializes the pseudo-random number generator, causing it to start at an arbitrary point in its random sequence. This sequence, while very long, and random, is always the same.

If it is important for a sequence of values generated by random() to differ, on subsequent executions of a sketch, use randomSeed() to initialize the random number generator with a fairly random input, such as analogRead() on an unconnected pin.

Conversely, it can occasionally be useful to use pseudo-random sequences that repeat exactly. This can be accomplished by calling randomSeed() with a fixed number, before starting the random sequence.

Syntax

Use the following function to set the seed number to initialize the random number generation:

randomSeed(seed)

Parameters

The function admits the following parameter:

seed: non-zero number to initialize the pseudo-random sequence. Allowed data types: unsigned long.

Returns

The function returns nothing.

Example Code

The code generates random numbers using a starting seed number and prints them in the Serial Monitor.

long randNumber;

void setup() {
  Serial.begin(9600);
  randomSeed(analogRead(0));
}

void loop() {
  randNumber = random(300);
  Serial.println(randNumber);
  delay(50);
}

Notes and Warnings

If the seed is 0, randomSeed(seed) will have no effect.

See also