Generate Random Number in Swift


In this tutorial, you are going to learn how to generate a random number in Swift programming.

Generating a random number in Swift can be done in multiple ways. In this article, I am going to mention some of the widely used methods that can help you to perform this task.

Generate random numbers using the random() function

Swift 4.2 introduced SE-0202: Random Unification to make developers’ tasks easier. it provides the random() function that can be used for generating a random number.

Now let’s see some examples in Swift for generating random numbers using the random function:

Generate random integer

Below is a Swift program for generating a random integer type number between 1 and 10:

var randomIntNum = Int.random(in: 1...10)

print(randomIntNum)

After you run the above program you will get a random number in the range 1 through 10.

Now let’s see another example below that will generate a number in a range 1 and 9:

var randomIntNum = Int.random(in: 1..<10)

print(randomIntNum)

In the above example, we have used the < operator. Using this operator, we are getting a random number that will be up to less than 10 i.e 9. So it generates the number which will be in the range 1 to 9.

Generating random float type number

We can also use a random float type number using the random() function.

Below is the example:

var randFloat = Float.random(in: 1...10)

print(randFloat)

Generate a random double type number

Below is the program for generating a random double type number using the Swift random() function:

var randDouble = Double.random(in: 1...10)

print(randDouble)

Generate random floating-point scalar (CGFloat) values in Core Graphics

For this, we have to import the Swift CoreGraphics library. Using this library, we can create floating-point scalar type values.

Now let’s see our program for generating random CGFloat:

import CoreGraphics

var randCGFloat = CGFloat.random(in: 1...10)
print(randCGFloat)

Generate random number using the Swift arc4random and arc4random_uniform functions

Using arc4random()

The arc4random() function returns a random number that is between 0 and (2^32)-1. Below is the program using the arc4random():

import Darwin

var randomNum = arc4random()
print(randomNum)

The above code will return a random number ranging in 0 and (2^32)-1.

You can also set an upper range in the arc4random function up to which number you want to get the random number. It will return a number ranging from 0 to your chosen number that you pass as the argument to the function.

If we want to get a random number ranging in 0 and 10, then below is the code:

import Darwin

var randomNum = arc4random() % 10
print(randomNum)

Using arc4random_uniform()

If you use the arc4random_uniform() function, you have to pass an argument that will be the upper limit of the random number.

Below is the code to get a random number between 0 and 50 using the arc4random_uniform function:

import Darwin
// Random number between 0 and 50
var randomNum = arc4random_uniform(50)
print(randomNum)

If we want to get a random number between our chosen range, then below is an example:

import Darwin
// Random number between 10 to 50
var randomNum = arc4random_uniform(50) + 10
print(randomNum)

The above Swift code will return a random number in the range 10 to 50.