anchor.diff:  { TRandom }
   
   const
  -  CSeedMask      = Int64(1) shl 48 - 1;
  -  CMultiplicator = Int64($00000005DEECE66D);
  -  CConstant      = Int64($000000000000000B);
  -  CSeedSize      = 48 div 8;
  +  CMultiplier = Int64(6364136223846793005);
  +  CIncrement  = Int64(1442695040888963407);
  +  CSeedSize   = 64 div 8;
   
   constructor TRandom.Create(Seed: Int64);
   begin
  -  FSeed := Seed and CSeedMask;
  +  FSeed := Seed;
   end;
   
   function TRandom.Next(Bits: Integer): UInt32;
  
positive.code: 
  procedure TRandom.SetSeed(ASeed: Int64);
  begin
    FSeed := ASeed and CSeedMask;
  end;
  
  { TDelphiRandom }
  
negative.code: {$IFOPT Q+}
  {$DEFINE HasRangeChecks}
  {$ENDIF}
    FSeed := (FSeed * CMultiplier + CIncrement);
    Result := UInt32(FSeed shr (64 - Bits)); // Use the highest bits; Lower bits have lower period.
  {$IFDEF HasRangeChecks}
  {$RANGECHECKS ON}
  {$ENDIF}
  