So würde ich das machen:
Code:
//********************************************// randomize functions
//********************************************


uint32_t getSeed() {
   return  (millis() + analogRead(A0)) ;
}


//-----------------------------------------------------
// Linear Congruence Generator, LCG   
//-----------------------------------------------------

static uint32_t   _RandNum_ = 1;

int rand_LCG() {
  uint32_t a = 1103515245ul, c = 12345;
  _RandNum_ = a * _RandNum_ + c; 
  _RandNum_ = (uint16_t)(_RandNum_ / 65536);
  return (_RandNum_ % 32768) ;
}


void srand_LCG(uint32_t seed) {
     _RandNum_ = seed;
}


//--------------------------------------------
// setup
//--------------------------------------------
void setup() {
   
   Serial.begin(115200);
   delay(2000);
   
   Serial.println("starting...");  
   Serial.println();

   volatile uint32_t  prng, seed;
   int16_t i;
   char buf[30];

   Serial.print("srand_LCG() seed=");
   seed=1;
   Serial.println(seed);  
   srand_LCG(seed);    
   //Serial.println(_RandNum_);
   for(int i=0; i<10; i++) {
     prng=rand_LCG();
     Serial.print(i); Serial.print(" "); Serial.println(prng);     
   }
   Serial.println();


   Serial.print("srand_LCG() seed=");
   seed=2;
   Serial.println(seed);  
   srand_LCG(seed); 
   //Serial.println(_RandNum_);
   for(int i=0; i<10; i++) {
     prng=rand_LCG();
     Serial.print(i); Serial.print(" "); Serial.println(prng);   
   }
   Serial.println();
}

//--------------------------------------------
// loop
//--------------------------------------------
void loop() {
   delay(2000); }