# How to shuffle an array in Swift

> Learn how to shuffle an array in Swift two ways: the shuffle() method that mutates the array in place, and shuffled() that returns a new shuffled array.

Author: Flavio Copes | Published: 2021-06-14 | Canonical: https://flaviocopes.com/swift-array-shuffle/

> This tutorial belongs to the [Swift](https://flaviocopes.com/swift-introduction/) series

Suppose you have an array in Swift, like this:

```swift
var items = 1...3
```

and you want to shuffle it, so that you get its items in random order.

There are 2 ways to do that in Swift. 

One way is mutating the original array, and it's using the `shuffle()` method that shuffles the items in the array:

```swift
items.shuffle()
```

Note that I used `var` because an array is a struct, and if I declare it as `let` then it's immutable, and you will get an error.

Another way is not mutating the original array, but it's returning a new array, and it's using the `shuffled()` method:

```swift
let items = 1...3
let shuffledItems = items.shuffled()
```

Note that here I am safe to use `let` to declare my variables because `shuffled()` does not mutate the original array.
