Począwszy od iOS 9 i OS X 10.11, możesz używać nowych klas GameplayKit do generowania liczb losowych na różne sposoby.
Masz do wyboru cztery typy źródeł: ogólne losowe źródło (bez nazwy, aż do systemu, który wybierze, co robi), liniowy congruential, ARC4 i Mersenne Twister. Mogą generować losowe liczby całkowite, zmiennoprzecinkowe i boole.
Na najprostszym poziomie możesz wygenerować losową liczbę z wbudowanego losowego źródła systemu, jak to:
NSInteger rand = [[GKRandomSource sharedRandom] nextInt];
To generuje liczbę między -2 147 483 648 a 2 147 483 647. Jeśli chcesz liczbę z zakresu od 0 do górnej granicy (wyłącznie), użyj tego:
NSInteger rand6 = [[GKRandomSource sharedRandom] nextIntWithUpperBound:6];
GameplayKit ma wbudowane kilka wygodnych konstruktorów do pracy z kostkami. Na przykład możesz rzucić sześciościenną kostką w następujący sposób:
GKRandomDistribution *d6 = [GKRandomDistribution d6];
[d6 nextInt];
Ponadto możesz kształtować losowy rozkład, używając rzeczy takich jak GKShuffledDistribution
.
arc4random_uniform(x)
sposób opisany poniżej przez @yood. Znajduje się również w stdlib.h (po OS X 10.7 i iOS 4.3) i zapewnia bardziej jednolity rozkład liczb losowych. Sposób użyciaint r = arc4random_uniform(74);