Random without parameters During a programming contest, I used the following line of code:

symbols[i] = random() &amp; 0b11;


After the contest, when I looked into the Arduino reference, I found out random takes one or two parameters. Based upon that, I would expect the code not to compile. However, this code somehow worked as I expected. (Assigning a random number from 0 to 3) How come?
Simple: random() isn't an Arduino function - it's a standard C function.


  Function random()
  
  long random(void)
  
  The random() function computes a sequence of pseudo-random integers in the range of 0 to RANDOM_MAX (as defined by the header file &lt;stdlib.h&gt;).
  
  The srandom() function sets its argument seed as the seed for a new sequence of pseudo-random numbers to be returned by rand(). These sequences are repeatable by calling srandom() with the same seed value.
  
  If no seed value is provided, the functions are automatically seeded with a value of 1.
  
  -- AVR LIBC Manual Page