arc4random

전통적인 C 함수로 srandome, rand를 이용해서 난수를 생성하는 방법이 있는데, 보다 진보된(?)형태의 함수로 arc4random 함수가 있다. 이 역시 표준 C 라이브러리(libc)에 탑재되어 있다. (stdlib.h에 선언됨)

u_int32_t arc4random(void);

이 함수는 32비트 범위값 내에서 정수의 형태로 난수를 생성하며, rand(), randome() 함수에 비해 두 배의 범위를 가진다. 게다가 seed 값을 미리 정의해줄 필요가 없다.

Swift에서도 난수를 만들기 위해서는 이 함수를 쓰는 것을 추천한다.

func arc4random() -> UInt32 

특정 범위 내 난수를 구하려면 이 값을 그 범위로 나눈 나머지를 쓰는데, 보다 안전한 연산을 위해서 arc4random_uniform 함수가 지원된다.

func arc4random(UInt32) -> UInt32

따라서 특정한 범위 내의 난수 값을 뽑으려면

arc4random_uniform(maxBound - minBound) + minBound 

한다.