【Xcode/Swift】Swiftのランダムのデータチートシート~乱数、配列からランダムに、ランダムで並び替え、ランダムな数字の配列 ~

Version
14.0
5.7
12.5
16.0

この記事では、Swiftのランダム処理について解説していきたいと思います。

乱数

0〜100まででランダムな整数(Int型)

let value = Int.random(in: 0...100)

0〜99まででランダムな整数(Int型)

let value = Int.random(in: 0..<100)

整数以外の乱数

数値型なら可能です。

let value = Double.random(in: 0...100)
let value = Float.random(in: 0...100)
let value = CGFloat.random(in: 0...100)

ランダムなフラグ

上記の乱数のように、Bool型でもランダム生成可能です。valueには、truefalseが入ります。

let value = Bool.random()

配列操作

配列をランダムにシャッフル

配列の中身がシャッフルされます。

let values = ["あ", "い", "う", "え", "お"]
let shuffled = values.shuffled()

配列からランダムに要素を抽出

let values = ["あ", "い", "う", "え", "お"]
let shuffled = values.randomElement()

ランダムな数値の配列を生成

(0..<10).mapの部分で作る配列の個数を指定します。

let values = (0..<10).map { _ in Int.random(in: (0)...10) }

ランダムなパスワードを生成

let characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
let password = String((0..<10).map{ _ in characters.randomElement()!}
参考 Swiftで指定した桁数のランダムな文字列を生成Qiita

ランダムでIDを生成(UUID())

そのユーザーに対してIDをつけるときは、UUIDを使いましょう。

let uuid = UUID()

おまけ:Swift 4.1以前のランダム生成

Swift 4.1以前には、Int.randomのような.randomがありませんでした。そのため、以下のようにランダムで値を生成していました。

以下のコードは0~9でランダムの値を生成します。

let value = arc4random_uniform(10)