Generic Instance Method

randomElement(using:)

Returns a random element of the collection, using the given generator as a source for randomness.

Declaration

func randomElement<T>(using generator: inout T) -> (key: Key, value: Value)? where T : RandomNumberGenerator

Parameters

generator

The random number generator to use when choosing a random element.

Return Value

A random element from the collection. If the collection is empty, the method returns nil.

Discussion

Call randomElement(using:) to select a random element from an array or another collection when you are using a custom random number generator. This example picks a name at random from an array:

let names = ["Zoey", "Chloe", "Amani", "Amaia"]
let randomName = names.randomElement(using: &myGenerator)!
// randomName == "Amani"

Complexity: O(1) if the collection conforms to RandomAccessCollection; otherwise, O(n), where n is the length of the collection.

See Also

Accessing Keys and Values

subscript(Key) -> Value?

Accesses the value associated with the given key for reading and writing.

subscript(Key, default: () -> Value) -> Value

Accesses the value with the given key. If the dictionary doesn’t contain the given key, accesses the provided default value as if the key and default value existed in the dictionary.

subscript(Dictionary<Key, Value>.Index) -> Dictionary<Key, Value>.Element

Accesses the key-value pair at the specified position.

var keys: Dictionary<Key, Value>.Keys

A collection containing just the keys of the dictionary.

var values: Dictionary<Key, Value>.Values

A collection containing just the values of the dictionary.

var first: (key: Key, value: Value)?

The first element of the collection.

func randomElement() -> (key: Key, value: Value)?

Returns a random element of the collection.