Generic Instance Method

# shuffle(using:)

Shuffles the collection in place, using the given generator as a source for randomness.

## Parameters

`generator`

The random number generator to use when shuffling the collection.

## Discussion

You use this method to randomize the elements of a collection when you are using a custom random number generator. For example, you can use the `shuffle(using:)` method to randomly reorder the elements of an array.

Complexity: O(n), where n is the length of the collection.

### Reordering an Array's Elements

`func sort()`

Sorts the collection in place.

`func sort(by: (Element, Element) -> Bool)`

Sorts the collection in place, using the given predicate as the comparison between elements.

`func sorted() -> [Element]`

Returns the elements of the sequence, sorted.

`func sorted(by: (Element, Element) -> Bool) -> [Element]`

Returns the elements of the sequence, sorted using the given predicate as the comparison between elements.

`func reverse()`

Reverses the elements of the collection in place.

`func reversed() -> ReversedCollection<Array<Element>>`

Returns a view presenting the elements of the collection in reverse order.

`func shuffle()`

Shuffles the collection in place.

`func shuffled() -> [Element]`

Returns the elements of the sequence, shuffled.

`func shuffled<T>(using: inout T) -> [Element]`

Returns the elements of the sequence, shuffled using the given generator as a source for randomness.

`func partition(by: (Element) -> Bool) -> Int`

Reorders the elements of the collection such that all the elements that match the given predicate are after all the elements that don’t match.

`func swapAt(Int, Int)`

Exchanges the values at the specified indices of the collection.