Arduino

Buy | Download | Getting Started | Learning | Reference | Hardware | FAQ

Blog » | Forum » | Playground »

Reference Language (extended) | Libraries | Comparison | Changes

## random()

#### Description

The random function generates pseudo-random numbers.

#### Syntax

random(max)
random(min, max)

#### Parameters

min - lower bound of the random value, inclusive (optional)

max - upper bound of the random value, exclusive

#### Returns

a random number between min and max-1 (long)

#### Note:

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.

#### Example

    long randNumber;

    void setup(){
      Serial.begin(9600);

      // if analog input pin 0 is unconnected, random analog
      // noise will cause the call to randomSeed() to generate
      // different seed numbers each time the sketch runs.
      // randomSeed() will then shuffle the random function.
      randomSeed(analogRead(0));
    }

    void loop() {
      // print a random number from 0 to 299
      randNumber = random(300);
      Serial.println(randNumber);

      // print a random number from 10 to 19
      randNumber = random(10, 20);
      Serial.println(randNumber);

      delay(50);
    }

#### See also

- randomSeed()

Reference Home

Corrections, suggestions, and new documentation should be posted to the Forum.

The text of the Arduino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.

Edit Page | Page History | Printable View | All Recent Site Changes