         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]]

        return collection.endIndex
    }
    
    public subscript(index: Collection.Index) -> Collection.Generator.Element {
        get {
            return collection[permutation[index]]


import Darwin

public struct ShuffleView<Collection: CollectionType where Collection.Index.Distance == Int, Collection.Index: Hashable> {
    private var collection: Collection
    
