No iOS 9 e OS X 10.11, você pode usar as novas classes GameplayKit para gerar números aleatórios de várias maneiras.
Você tem quatro tipos de fonte para escolher: uma fonte aleatória geral (sem nome, até o sistema escolher o que faz), congruencial linear, ARC4 e Mersenne Twister. Isso pode gerar entradas, flutuadores e bools aleatórios.
No nível mais simples, você pode gerar um número aleatório a partir da fonte aleatória interna do sistema, como esta:
NSInteger rand = [[GKRandomSource sharedRandom] nextInt];
Isso gera um número entre -2.147.483.648 e 2.147.483.647. Se você deseja um número entre 0 e um limite superior (exclusivo), use este:
NSInteger rand6 = [[GKRandomSource sharedRandom] nextIntWithUpperBound:6];
O GameplayKit possui alguns construtores de conveniência incorporados para trabalhar com dados. Por exemplo, você pode rolar um dado de seis lados assim:
GKRandomDistribution *d6 = [GKRandomDistribution d6];
[d6 nextInt];
Além disso, você pode moldar a distribuição aleatória usando coisas como GKShuffledDistribution
.
arc4random_uniform(x)
como descrito abaixo por @yood. Também está em stdlib.h (depois do OS X 10.7 e iOS 4.3) e fornece uma distribuição mais uniforme dos números aleatórios. Usoint r = arc4random_uniform(74);