úÎ'—&d     portable experimental=Shuffle a list randomly. The method is based on Oleg Kiselyov's  perfect shuffle  0http://okmij.org/ftp/Haskell/perfect-shuffle.txt, K but much simpler because it uses existing data structures. The efficiency ' of both methods should be comparable.  Complexity: O(n * log n), where n" is the length of the input list. 3Shuffle a sequence randomly. This is being used by , ' so it logically uses the same method.  Complexity: O(n * log n), where n& is the length of the input sequence. "Take a random sample from a list.  Complexity: O(n + m * log n), where n" is the length of the input list  and m is the sample size. &Take a random sample from a sequence.  Complexity: O(m * log n), where n& is the length of the input sequence  and m is the sample size. 4Randomly choose and extract an element from a list.  Complexity: O(n), where n" is the length of the input list. 8Randomly choose and extract an element from a sequence.  Complexity: O(log n), where n& is the length of the input sequence. %Select a random element from a list. Partial function:3 This function is only defined on non-empty lists.  Complexity: O(n), where n" is the length of the input list. ,Safely select a random element from a list.  Complexity: O(n), where n" is the length of the input list. DSelect a random element from a list, traversing the list only once. Partial function:2 This function is only defined on non-empty lists * with a length below ( + 1 :: Int).  Complexity: O(n), where n" is the length of the input list. )Select a random element from a sequence. Partial function:7 This function is only defined on non-empty sequences.  Complexity: O(log n), where n& is the length of the input sequence. 0Safely select a random element from a sequence.  Complexity: O(log n), where n& is the length of the input sequence. 'Select a random element from an array.  Complexity: O(1). )A stream of random elements from a list. Partial function:3 This function is only defined on non-empty lists.  Complexity:! O(n) base and O(1) per element. 4Safely get a stream of random elements from a list.  Complexity:' O(n) base and O(1) per element, where n is the length of  the input list. +A stream of random elements from an array.  Complexity: O(1) per element.         random-extras-0.4Control.Monad.Random.Extrasshuffle shuffleSeqsample sampleSeq choiceExtractchoiceExtractSeqchoice safeChoiceiterativeChoice choiceSeq safeChoiceSeq choiceArraychoices safeChoices choicesArray.:extract extractSeq getRandomR'getRandomRNumsbacksaw shuffleSeq'baseGHC.EnummaxBound