<!--
{
  "availability" : [
    "iOS: 9.0.0 -",
    "iPadOS: 9.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.11.0 -",
    "tvOS: 9.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "GameplayKit",
  "identifier" : "/documentation/GameplayKit/GKARC4RandomSource",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "GameplayKit"
    ],
    "preciseIdentifier" : "c:objc(cs)GKARC4RandomSource"
  },
  "title" : "GKARC4RandomSource"
}
-->

# GKARC4RandomSource

A basic random number generator implementing the ARC4 algorithm, which is suitable for most gameplay mechanics.

```
class GKARC4RandomSource
```

## 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](https://developer.apple.com/library/archive/documentation/Security/Conceptual/cryptoservices/Introduction/Introduction.html#//apple_ref/doc/uid/TP40011172).

To generate basic random values with this random source, use the methods defined in the [`GKRandom`](/documentation/GameplayKit/GKRandom) protocol. To generate random values with a specific range and distribution, use this random source with the [`GKRandomDistribution`](/documentation/GameplayKit/GKRandomDistribution) class or one of its subclasses.

When you create an instance of this class, the resulting random source is both *independent* and *deterministic*—that is, the sequence of numbers generated by one instance has no effect on the sequence generated by any other instance, and that sequence can be replicated when necessary. For details on replicating sequences, see the [`seed`](/documentation/GameplayKit/GKARC4RandomSource/seed) property and [`init(seed:)`](/documentation/GameplayKit/GKARC4RandomSource/init(seed:)) initializer.

> Note:
> The ``doc://com.apple.gameplaykit/documentation/GameplayKit/GKARC4RandomSource`` class uses a similar agorithm to, but is independent from, the arc4random family of C functions.

For more information on choosing and using randomizers in GameplayKit, read [Randomization](https://developer.apple.com/library/archive/documentation/General/Conceptual/GameplayKit_Guide/RandomSources.html#//apple_ref/doc/uid/TP40015172-CH9) in [GameplayKit Programming Guide](https://developer.apple.com/library/archive/documentation/General/Conceptual/GameplayKit_Guide/index.html#//apple_ref/doc/uid/TP40015172).

## Topics

### Creating a Random Source

[`-  init`](/documentation/GameplayKit/GKARC4RandomSource/init())

Initializes a random source from a nondeterministic seed.

[`-  initWithSeed:`](/documentation/GameplayKit/GKARC4RandomSource/init(seed:))

Initializes a random source with the specified seed data.

### Replicating Random Behavior

[`seed`](/documentation/GameplayKit/GKARC4RandomSource/seed)

The seed data that determines the random source’s behavior.

### Avoiding Predictable Behavior

[`-  dropValuesWithCount:`](/documentation/GameplayKit/GKARC4RandomSource/dropValues(_:))

Skips the specified number of values in the random sequence.

## Relationships

### Conforms To

[`CVarArg`](/documentation/Swift/CVarArg)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`NSCoding`](/documentation/Foundation/NSCoding)

[`Hashable`](/documentation/Swift/Hashable)

[`NSSecureCoding`](/documentation/Foundation/NSSecureCoding)

[`Equatable`](/documentation/Swift/Equatable)

[`NSCopying`](/documentation/Foundation/NSCopying)

[`GKRandom`](/documentation/GameplayKit/GKRandom)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

### Inherits From

[`GKRandomSource`](/documentation/GameplayKit/GKRandomSource)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)