         return collection.endIndex
     }
     
+    /// Average case O(n) and worst case O(infinity) first access; worst case O(1) repeat access.
     public subscript(index: Collection.Index) -> Collection.Generator.Element {
         get {
             return collection[permutation[index]]


import Darwin

// Provides average case O(n) first access and worst case O(infinity) first access
// Provides worst case O(1) repeat access
public struct ShuffleView<Collection: CollectionType where Collection.Index.Distance == Int, Collection.Index: Hashable> {
    private var collection: Collection
    

        return collection.endIndex
    }
    
    /// Average case O(n) and worst case O(infinity) first access; worst case O(1) repeat access.
    public subscript(index: Collection.Index) -> Collection.Generator.Element {
    	get {
    		return collection[permutation[index]]
