A partir de iOS 9 y OS X 10.11, puedes usar las nuevas clases de GameplayKit para generar números aleatorios de varias maneras.
Tiene cuatro tipos de fuente para elegir: una fuente aleatoria general (sin nombre, hasta el sistema para elegir lo que hace), lineal congruencial, ARC4 y Mersenne Twister. Estos pueden generar entradas aleatorias, flotadores y bools.
En el nivel más simple, puede generar un número aleatorio a partir de la fuente aleatoria incorporada del sistema de esta manera:
NSInteger rand = [[GKRandomSource sharedRandom] nextInt];
Eso genera un número entre -2,147,483,648 y 2,147,483,647. Si desea un número entre 0 y un límite superior (exclusivo) usaría esto:
NSInteger rand6 = [[GKRandomSource sharedRandom] nextIntWithUpperBound:6];
GameplayKit tiene algunos constructores convenientes integrados para trabajar con dados. Por ejemplo, puedes tirar un dado de seis lados como este:
GKRandomDistribution *d6 = [GKRandomDistribution d6];
[d6 nextInt];
Además, puede dar forma a la distribución aleatoria utilizando cosas como GKShuffledDistribution
.
arc4random_uniform(x)
como se describe a continuación por @yood. También está en stdlib.h (después de OS X 10.7 y iOS 4.3) y ofrece una distribución más uniforme de los números aleatorios. Usoint r = arc4random_uniform(74);