Generic Instance Method

# shuffled(using:)

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

## Parameters

`generator`

The random number generator to use when shuffling the sequence.

## Return Value

An array of this sequence’s elements in a shuffled order.

## Discussion

You use this method to randomize the elements of a sequence when you are using a custom random number generator. For example, you can shuffle the numbers between `0` and `9` by calling the `shuffled(using:)` method on that range:

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

### Transforming a Dictionary

`func mapValues<T>((Value) -> T) -> Dictionary<Key, T>`

Returns a new dictionary containing the keys of this dictionary with the values transformed by the given closure.

`func reduce<Result>(Result, (Result, (key: Key, value: Value)) -> Result) -> Result`

Returns the result of combining the elements of the sequence using the given closure.

`func reduce<Result>(into: Result, (inout Result, (key: Key, value: Value)) -> ()) -> Result`

Returns the result of combining the elements of the sequence using the given closure.

`func map<T>(((key: Key, value: Value)) -> T) -> [T]`

Returns an array containing the results of mapping the given closure over the sequence’s elements.

`func compactMap<ElementOfResult>(((key: Key, value: Value)) -> ElementOfResult?) -> [ElementOfResult]`

Returns an array containing the non-`nil` results of calling the given transformation with each element of this sequence.

`func compactMapValues<T>((Value) -> T?) -> Dictionary<Key, T>`

Returns a new dictionary containing only the key-value pairs that have non-`nil` values as the result of transformation by the given closure.

`func flatMap<SegmentOfResult>(((key: Key, value: Value)) -> SegmentOfResult) -> [SegmentOfResult.Element]`

Returns an array containing the concatenated results of calling the given transformation with each element of this sequence.

`func sorted(by: ((key: Key, value: Value), (key: Key, value: Value)) -> Bool) -> [(key: Key, value: Value)]`

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

`func shuffled() -> [(key: Key, value: Value)]`

Returns the elements of the sequence, shuffled.