What's the best seed for random API ?

picoSec :: IO Integer picoSec = do t <- ctPicosec `liftM` (getClockTime >>= toCalendarTime) return t rollDice :: Int -> IO Int rollDice n = do ps <- picoSec return $ (take 1 $ randomRs (1,n) $ mkStdGen $ fromInteger ps) !! 0 The above code uses `ctPicosec` as seed. Is it better to use the output of /dev/urandom as seed ? Sincerely! ----- e^(π.i) + 1 = 0 -- View this message in context: http://haskell.1045720.n5.nabble.com/What-s-the-best-seed-for-random-API-tp3... Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.

Admittedly, I don't know much about this from the haskell end or about the
particular api.
If you want statistical randomness, your seed doesn't matter; just the PRNG.
I might even have seeded with a constant or taken the seed from the user.
Seeding from urandom will make your output "more random" for some
unquantifiable meaning of the phrase.
If you want cryptographic randomness, you probably shouldn't be writing your
own library if you can avoid it.
On Wed, Jan 5, 2011 at 7:21 PM, z_axis
picoSec :: IO Integer picoSec = do t <- ctPicosec `liftM` (getClockTime >>= toCalendarTime) return t
rollDice :: Int -> IO Int rollDice n = do ps <- picoSec return $ (take 1 $ randomRs (1,n) $ mkStdGen $ fromInteger ps) !! 0
The above code uses `ctPicosec` as seed. Is it better to use the output of /dev/urandom as seed ?
Sincerely!
----- e^(π.i) + 1 = 0 -- View this message in context: http://haskell.1045720.n5.nabble.com/What-s-the-best-seed-for-random-API-tp3... Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
-- Alex R
participants (2)
-
Alex Rozenshteyn
-
z_axis