---
title: "shuffle(using:)"
framework: swift
role: symbol
role_heading: Instance Method
path: "swift/array/shuffle(using:)"
---

# shuffle(using:)

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

## Declaration

```swift
mutating func shuffle<T>(using generator: inout T) where T : RandomNumberGenerator
```

## Parameters

- `generator`: The random number generator to use when shuffling the collection.

## Discussion

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. var names = ["Alejandro", "Camila", "Diego", "Luciana", "Luis", "Sofía"] names.shuffle(using: &myGenerator) // names == ["Sofía", "Alejandro", "Camila", "Luis", "Diego", "Luciana"] note: O(n), where n is the length of the collection. note: The algorithm used to shuffle a collection may change in a future version of Swift. If you’re passing a generator that results in the same shuffled order each time you run your program, that sequence may change when your program is compiled using a different version of Swift.

## See Also

### Reordering an Array’s Elements

- [sort()](swift/array/sort().md)
- [sort(by:)](swift/array/sort(by:).md)
- [sorted()](swift/array/sorted().md)
- [sorted(by:)](swift/array/sorted(by:).md)
- [reverse()](swift/array/reverse().md)
- [reversed()](swift/array/reversed().md)
- [shuffle()](swift/array/shuffle().md)
- [shuffled()](swift/array/shuffled().md)
- [shuffled(using:)](swift/array/shuffled(using:).md)
- [partition(by:)](swift/array/partition(by:)-90po8.md)
- [swapAt(_:_:)](swift/array/swapat(_:_:).md)
