Начиная с iOS 9 и OS X 10.11, вы можете использовать новые классы GameplayKit для генерации случайных чисел различными способами.
У вас есть четыре типа источников на выбор: общий случайный источник (без имени, вплоть до системы, чтобы выбрать, что он делает), линейный конгруэнтный, ARC4 и Mersenne Twister. Они могут генерировать случайные целые числа, числа с плавающей запятой и значения типа bools.
На простейшем уровне вы можете сгенерировать случайное число из встроенного в систему случайного источника, например:
NSInteger rand = [[GKRandomSource sharedRandom] nextInt];
Это создает число от -2 147 483 648 до 2 147 483 647. Если вы хотите число от 0 до верхней границы (исключая), вы должны использовать это:
NSInteger rand6 = [[GKRandomSource sharedRandom] nextIntWithUpperBound:6];
В GameplayKit есть несколько удобных конструкторов для работы с кубиками. Например, вы можете бросить шестигранный кубик так:
GKRandomDistribution *d6 = [GKRandomDistribution d6];
[d6 nextInt];
Кроме того, вы можете формировать случайное распределение, используя такие вещи, как GKShuffledDistribution
.
arc4random_uniform(x)
как описано ниже @yood. Он также находится в stdlib.h (после OS X 10.7 и iOS 4.3) и дает более равномерное распределение случайных чисел. Использованиеint r = arc4random_uniform(74);