diff --git a/Control/Monad/Random/Extras.hs b/Control/Monad/Random/Extras.hs
--- a/Control/Monad/Random/Extras.hs
+++ b/Control/Monad/Random/Extras.hs
@@ -143,14 +143,14 @@
 
 -- Choices
 
--- | Select /m/ random elements from a list.
+-- | A stream of random elements from a list.
 --
--- Complexity: O(m)
-choices :: (MonadRandom m) => Int -> [a] -> m [a]
-choices m xs = choicesArray m (Data.Array.listArray (1, length xs) xs)
+-- Complexity: O(n) base and O(1) per element
+choices :: (MonadRandom m) => [a] -> m [a]
+choices xs = choicesArray $ Data.Array.listArray (1, length xs) xs
 
--- | Select /m/ random elements from an array.
+-- | A stream of random elements from an array.
 --
--- Complexity: O(m)
-choicesArray :: (MonadRandom m, Arr.IArray arr a, Arr.Ix i, Random i) => Int -> arr i a -> m [a]
-choicesArray m v = map (v !) `liftM` take m `liftM` getRandomRs (Arr.bounds v)
+-- Complexity: O(1) per element
+choicesArray :: (MonadRandom m, Arr.IArray arr a, Arr.Ix i, Random i) => arr i a -> m [a]
+choicesArray v = map (v !) `liftM` getRandomRs (Arr.bounds v)
diff --git a/random-extras.cabal b/random-extras.cabal
--- a/random-extras.cabal
+++ b/random-extras.cabal
@@ -7,7 +7,7 @@
 -- The package version. See the Haskell package versioning policy
 -- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for
 -- standards guiding when and how versions should be incremented.
-Version:             0.2
+Version:             0.3
 
 -- A short (one-line) description of the package.
 Synopsis:            Additional functions for random values.
