.. highlight:: cpp .. _lang-randomseed: randomSeed() ============ ``randomSeed()`` initializes the `pseudorandom number generator <http://en.wikipedia.org/wiki/Pseudorandom_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. Library Documentation --------------------- .. doxygenfunction:: randomSeed Discussion ---------- If it is important for a sequence of values generated by :ref:`random() <lang-random>` to differ, on subsequent executions of a sketch, use ``randomSeed()`` to initialize the random number generator with a fairly random input, such as :ref:`analogRead() <lang-analogread>` on an unconnected pin. Conversely, it can occasionally be useful to use pseudorandom sequences that repeat exactly. This can be accomplished by calling ``randomSeed()`` with a fixed number, before starting the random sequence. Example ------- The following sketch initializes the random seed based on an :ref:`ADC <adc>` reading of pin 0. If this pin is unconnected, the Sketch should print different values to the :ref:`serial monitor <ide-serial-monitor>` each time it is run:: long randNumber; void setup() { pinMode(0, INPUT_ANALOG); randomSeed(analogRead(0)); } void loop() { randNumber = random(300); SerialUSB.println(randNumber); delay(50); } See Also -------- - :ref:`random() <lang-random>` .. include:: cc-attribution.txt