const unsigned m = 0x80000000;
unsigned rand_nextint(unsigned seed)
{
  static const unsigned a = 32771;
  static const unsigned c = 1234567891;

  return ( a * seed + c ) % m;
}


int main()
{
  int i;
unsigned seed = 0;

  for(i = 0; i < 10; ++i)
  {
   printf("%f\n", (double)(seed = rand_nextint(seed))/m);
}

  return 0;
}

とかは?