using seeds for replayable randomness