{-# 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