data-spacepart-20090215.0: test/System/Random/Utils.hs
{-# LANGUAGE ScopedTypeVariables #-}
module System.Random.Utils where
import System.Random.Mersenne
randomElement a gen = do
v :: Double <- random gen
let i :: Int = floor $ v * (fromIntegral $ length a)
return $ a !! i
randomRange low high gen = do
v <- random gen
return $ low * (1 - v) + high * v