Random

Common
JVM
JS
Native
1.3
abstract class Random

An abstract class that is implemented by random number generator algorithms.

The companion object Random.Companion is the default instance of Random.

To get a seeded instance of random generator use Random function.

import kotlin.random.Random
import kotlin.test.assertTrue

fun main(args: Array<String>) {
//sampleStart
val randomValues = List(10) { Random.nextInt(0, 100) }
// prints new sequence every time
println(randomValues)

val nextValues = List(10) { Random.nextInt(0, 100) }
println(nextValues)
println("randomValues != nextValues is ${randomValues != nextValues}") // true
//sampleEnd
}

Types

Common
JVM
JS
Native
1.0

Companion

object Companion : Random
Common
JVM
JS
Native
1.0

Default

The default random number generator.

companion object Default : Random

Constructors

Common
JVM
JS
Native
1.0

<init>

An abstract class that is implemented by random number generator algorithms.

Random()

Functions

Common
JVM
JS
Native
1.0

nextBits

Gets the next random bitCount number of bits.

abstract fun nextBits(bitCount: Int): Int
Common
JVM
JS
Native
1.0

nextBoolean

Gets the next random Boolean value.

open fun nextBoolean(): Boolean
Common
JVM
JS
Native
1.0

nextBytes

Fills a subrange of the specified byte array starting from fromIndex inclusive and ending toIndex exclusive with random bytes.

open fun nextBytes(
    array: ByteArray,
    fromIndex: Int = 0,
    toIndex: Int = array.size
): ByteArray

Fills the specified byte array with random bytes and returns it.

open fun nextBytes(array: ByteArray): ByteArray

Creates a byte array of the specified size, filled with random bytes.

open fun nextBytes(size: Int): ByteArray
Common
JVM
JS
Native
1.0

nextDouble

Gets the next random Double value uniformly distributed between 0 (inclusive) and 1 (exclusive).

open fun nextDouble(): Double

Gets the next random non-negative Double from the random number generator not greater than the specified until bound.

open fun nextDouble(until: Double): Double

Gets the next random Double from the random number generator in the specified range.

open fun nextDouble(from: Double, until: Double): Double
Common
JVM
JS
Native
1.0

nextFloat

Gets the next random Float value uniformly distributed between 0 (inclusive) and 1 (exclusive).

open fun nextFloat(): Float
Common
JVM
JS
Native
1.0

nextInt

Gets the next random Int from the random number generator.

open fun nextInt(): Int

Gets the next random non-negative Int from the random number generator not greater than the specified until bound.

open fun nextInt(until: Int): Int

Gets the next random Int from the random number generator in the specified range.

open fun nextInt(from: Int, until: Int): Int
Common
JVM
JS
Native
1.0

nextLong

Gets the next random Long from the random number generator.

open fun nextLong(): Long

Gets the next random non-negative Long from the random number generator not greater than the specified until bound.

open fun nextLong(until: Long): Long

Gets the next random Long from the random number generator in the specified range.

open fun nextLong(from: Long, until: Long): Long

Companion Object Properties

Common
JVM
JS
Native
1.0

Companion

val Companion: Companion

Companion Object Functions

Common
JVM
JS
Native
1.0

nextBits

Gets the next random bitCount number of bits.

fun nextBits(bitCount: Int): Int
Common
JVM
JS
Native
1.0

nextBoolean

Gets the next random Boolean value.

fun nextBoolean(): Boolean
Common
JVM
JS
Native
1.0

nextBytes

Fills the specified byte array with random bytes and returns it.

fun nextBytes(array: ByteArray): ByteArray

Creates a byte array of the specified size, filled with random bytes.

fun nextBytes(size: Int): ByteArray

Fills a subrange of the specified byte array starting from fromIndex inclusive and ending toIndex exclusive with random bytes.

fun nextBytes(
    array: ByteArray,
    fromIndex: Int,
    toIndex: Int
): ByteArray
Common
JVM
JS
Native
1.0

nextDouble

Gets the next random Double value uniformly distributed between 0 (inclusive) and 1 (exclusive).

fun nextDouble(): Double

Gets the next random non-negative Double from the random number generator not greater than the specified until bound.

fun nextDouble(until: Double): Double

Gets the next random Double from the random number generator in the specified range.

fun nextDouble(from: Double, until: Double): Double
Common
JVM
JS
Native
1.0

nextFloat

Gets the next random Float value uniformly distributed between 0 (inclusive) and 1 (exclusive).

fun nextFloat(): Float
Common
JVM
JS
Native
1.0

nextInt

Gets the next random Int from the random number generator.

fun nextInt(): Int

Gets the next random non-negative Int from the random number generator not greater than the specified until bound.

fun nextInt(until: Int): Int

Gets the next random Int from the random number generator in the specified range.

fun nextInt(from: Int, until: Int): Int
Common
JVM
JS
Native
1.0

nextLong

Gets the next random Long from the random number generator.

fun nextLong(): Long

Gets the next random non-negative Long from the random number generator not greater than the specified until bound.

fun nextLong(until: Long): Long

Gets the next random Long from the random number generator in the specified range.

fun nextLong(from: Long, until: Long): Long

Extension Functions

JVM
1.3

asJavaRandom

Creates a java.util.Random instance that uses the specified Kotlin Random generator as a randomness source.

fun Random.asJavaRandom(): Random
Common
JVM
JS
Native
1.3

nextInt

Gets the next random Int from the random number generator in the specified range.

fun Random.nextInt(range: IntRange): Int
Common
JVM
JS
Native
1.3

nextLong

Gets the next random Long from the random number generator in the specified range.

fun Random.nextLong(range: LongRange): Long
Common
JVM
JS
Native
1.3

nextUBytes

Fills the specified unsigned byte array with random bytes and returns it.

fun Random.nextUBytes(array: UByteArray): UByteArray

Creates an unsigned byte array of the specified size, filled with random bytes.

fun Random.nextUBytes(size: Int): UByteArray

Fills a subrange of the specified UByte array starting from fromIndex inclusive and ending toIndex exclusive with random UBytes.

fun Random.nextUBytes(
    array: UByteArray,
    fromIndex: Int = 0,
    toIndex: Int = array.size
): UByteArray
Common
JVM
JS
Native
1.3

nextUInt

Gets the next random UInt from the random number generator.

fun Random.nextUInt(): UInt

Gets the next random UInt from the random number generator not greater than the specified until bound.

fun Random.nextUInt(until: UInt): UInt

Gets the next random UInt from the random number generator in the specified range.

fun Random.nextUInt(from: UInt, until: UInt): UInt

Gets the next random UInt from the random number generator in the specified range.

fun Random.nextUInt(range: UIntRange): UInt
Common
JVM
JS
Native
1.3

nextULong

Gets the next random ULong from the random number generator.

fun Random.nextULong(): ULong

Gets the next random ULong from the random number generator not greater than the specified until bound.

fun Random.nextULong(until: ULong): ULong

Gets the next random ULong from the random number generator in the specified range.

fun Random.nextULong(from: ULong, until: ULong): ULong

Gets the next random ULong from the random number generator in the specified range.

fun Random.nextULong(range: ULongRange): ULong