Kể từ iOS 9 và OS X 10.11, bạn có thể sử dụng các lớp GameplayKit mới để tạo số ngẫu nhiên theo nhiều cách khác nhau.
Bạn có bốn loại nguồn để chọn: một nguồn ngẫu nhiên chung (chưa được đặt tên, xuống hệ thống để chọn những gì nó làm), đồng quy tuyến tính, ARC4 và Mersenne Twister. Chúng có thể tạo ra ints ngẫu nhiên, float và bools.
Ở cấp độ đơn giản nhất, bạn có thể tạo một số ngẫu nhiên từ nguồn ngẫu nhiên tích hợp sẵn của hệ thống như thế này:
NSInteger rand = [[GKRandomSource sharedRandom] nextInt];
Điều đó tạo ra một số từ -2,147,483,648 đến 2,147,483,647. Nếu bạn muốn một số từ 0 đến giới hạn trên (độc quyền), bạn sẽ sử dụng số này:
NSInteger rand6 = [[GKRandomSource sharedRandom] nextIntWithUpperBound:6];
GameplayKit có một số hàm tạo tiện lợi được tích hợp để hoạt động với xúc xắc. Ví dụ: bạn có thể lăn một cái chết sáu mặt như thế này:
GKRandomDistribution *d6 = [GKRandomDistribution d6];
[d6 nextInt];
Ngoài ra, bạn có thể định hình phân phối ngẫu nhiên bằng cách sử dụng những thứ như GKShuffledDistribution
.
arc4random_uniform(x)
như được mô tả dưới đây bởi @yood. Nó cũng có trong stdlib.h (sau OS X 10.7 và iOS 4.3) và phân phối đồng đều hơn các số ngẫu nhiên. Cách sử dụngint r = arc4random_uniform(74);