How about this, then. Use millisecs to seed the Blitz RND function for the number of keys the user presses. Keep a running total of the scancode values for those keys, and then use THAT value as the seed. Nobody will EVER press the same keys the same RND number of times, don't you think? Or, at least, the number will be so minutely small, that the odds of it occurring again (as other than a truly random re-occurrance) are on the order of one times ten ^googleplex (if even that).