---
title: GKRandom
framework: gameplaykit
role: symbol
role_heading: Protocol
path: gameplaykit/gkrandom
---

# GKRandom

The common interface for all randomization classes in (or usable with) GameplayKit.

## Declaration

```swift
protocol GKRandom
```

## Overview

Overview important: The randomization services provided in GameplayKit are suitable for reliably creating deterministic, pseudorandom gameplay mechanics, but are not cryptographically robust. For cryptography, obfuscation, or cipher uses, use the Security framework, described in Cryptographic Services Guide. GameplayKit randomization classes include the GKRandomSource and GKRandomDistribution classes and their subclasses. You use those classes to generate random behavior for gameplay mechanics, and use this protocol type directly when composing random sources to create more complex randomizers. For more information on choosing and using randomizers in GameplayKit, read Randomization in GameplayKit Programming Guide.

## Topics

### Generating Random Numbers

- [nextInt()](gameplaykit/gkrandom/nextint().md)
- [nextInt(upperBound:)](gameplaykit/gkrandom/nextint(upperbound:).md)
- [nextUniform()](gameplaykit/gkrandom/nextuniform().md)
- [nextBool()](gameplaykit/gkrandom/nextbool().md)

## Relationships

### Conforming Types

- [GKARC4RandomSource](gameplaykit/gkarc4randomsource.md)
- [GKGaussianDistribution](gameplaykit/gkgaussiandistribution.md)
- [GKLinearCongruentialRandomSource](gameplaykit/gklinearcongruentialrandomsource.md)
- [GKMersenneTwisterRandomSource](gameplaykit/gkmersennetwisterrandomsource.md)
- [GKRandomDistribution](gameplaykit/gkrandomdistribution.md)
- [GKRandomSource](gameplaykit/gkrandomsource.md)
- [GKShuffledDistribution](gameplaykit/gkshuffleddistribution.md)

## See Also

### Randomization

- [GKRandomSource](gameplaykit/gkrandomsource.md)
- [GKARC4RandomSource](gameplaykit/gkarc4randomsource.md)
- [GKLinearCongruentialRandomSource](gameplaykit/gklinearcongruentialrandomsource.md)
- [GKMersenneTwisterRandomSource](gameplaykit/gkmersennetwisterrandomsource.md)
- [GKRandomDistribution](gameplaykit/gkrandomdistribution.md)
- [GKGaussianDistribution](gameplaykit/gkgaussiandistribution.md)
- [GKShuffledDistribution](gameplaykit/gkshuffleddistribution.md)
