What algorithms are used in modern and good-quality random number generators? 



Pseudo-random number generation algorithms
Don't miss [this wonderful post](http://groups.google.com/group/comp.lang.c/msg/e3c4ea1169e463ae) by Marsaglia. He's not a fan of the Mersenne Twister and offers some strong PRNGs with exceptionally small code footprints. One of his examples is:



```
static unsigned long 
x=123456789,y=362436069,z=521288629,w=88675123,v=886756453; 
      /* replace defaults with five random seed values in calling program */ 
unsigned long xorshift(void) 
{unsigned long t; 
 t=(x^(x>>7)); x=y; y=z; z=w; w=v; 
 v=(v^(v<<6))^(t^(t<<13)); return (y+y+1)*v;} 

```

