Couple of "rules" that I follow:
1. Always seed the RNG with a multi-digit value (@MSECS or Abs(@TICKS)) ONCE and NEVER MORE THAN ONCE!
2. Immediately call Rnd() and discard the value.
3. To improve randomness, especially for small values, take a large value and use Int(SubStr(s,e,l)) or use two randoms and divide one by the other. For ranges that include zero, use a larger range (1-100) and subtract 1.
4. Remember that for a given seed, the random sequence is always the same. This can be used to your advantage - I use it to consistently generate "random" code-wheels for my Enigma-based Cipher function. (WWII German Enigma style encode/decode with 1024 codewheels instead of 6.)
The first response isn't not-random, it's just somewhat less random than following responses, with zero and other single-digit values coming up more frequently than following calls. Thus, it's often better to discard it.
Glenn
_________________________
Actually I
am a Rocket Scientist!