Swiftで乱数を生成する方法を解説します。
環境
この記事の情報は次のバージョンで動作確認しています。
【Xcode】11.2.1
【Swift】5.1
【iOS】13.2.2
【macOS】Catalina バージョン 10.15.3
【Swift】5.1
【iOS】13.2.2
【macOS】Catalina バージョン 10.15.3
基本的な使い方
1 2 3 |
let randomInt = Int.random(in: 1..<5) // 1から4の範囲で整数(Int型)乱数を生成 |
希望する数値型のrandom()メソッドを呼び出し、乱数を生成する範囲を引数で指定します。
以下のような、Int以外の数値型でも生成可能です。
1 2 3 4 5 |
let randomFloat = Float.random(in: 1..<10) let randomDouble = Double.random(in: 1...100) let randomCGFloat = CGFloat.random(in: 1...1000) |
また、ブール値に対しても生成可能です。
この場合は、ランダムにtrueまたはfalseのどちらかを生成します。
1 2 3 |
let randomBool = Bool.random() |
配列のシャッフル
配列の要素をシャッフルするには、Array専用のshuffle()メソッドを使用します。
1 2 3 4 5 |
var values = ["A", "B", "C", "D"] values.shuffle() // 配列の要素を並べ替え |
こちらのshuffled()メソッドは、元の配列を変更せずに、要素をシャッフルした配列を新たに生成します。
1 2 3 4 5 |
let values = ["A", "B", "C", "D"] let shuffled = values.shuffled() // 要素をシャッフルした配列を新たに生成 |
ランダムに要素を抽出
randomElement()メソッドで、配列からランダムに要素を抽出できます。
配列が空の場合はnilが返ります。
1 2 3 4 5 |
let values = ["A", "B", "C", "D"] let randomValue = values.randomElement() // ランダムに要素を抽出 |
あわせて読みたい記事
【Swift】配列の使い方
(2020/05/02 更新) 配列(Array)の使い方について解説します。 Swiftでは配列に格納できる要素の数に制限はなく、自由に格納したり取り出したりできます。