How to generate random Powerball lottery numbers (pick 5 numbers from 1-69 + 1 Powerball from 1-26) in Kotlin

1 Answer

0 votes
import kotlin.random.Random

/*
    Generate random Powerball lottery numbers:
        - 5 distinct numbers from 1–69
        - 1 distinct Powerball number from 1–26

    This program uses:
        - Kotlin's Random for RNG
        - MutableSet<Int> for uniqueness
        - idiomatic functions and clean structure
*/

/*
    generateMainNumbers():
    Generates 5 UNIQUE numbers in the range [1, 69].
    A MutableSet ensures no duplicates.
*/
fun generateMainNumbers(rng: Random): List<Int> {
    val chosen: MutableSet<Int> = mutableSetOf()

    // Keep adding until we have 5 distinct numbers
    while (chosen.size < 5) {
        val n: Int = rng.nextInt(1, 70)   // 1–69
        chosen.add(n)
    }

    return chosen.toList().sorted()
}

/*
    generatePowerball():
    Generates a single number in the range [1, 26].
*/
fun generatePowerball(rng: Random): Int {
    return rng.nextInt(1, 27)            // 1–26
}

fun main() {
    val rng: Random = Random.Default

    val mainNumbers: List<Int> = generateMainNumbers(rng)
    val powerball: Int = generatePowerball(rng)

    println("Random Powerball numbers:")
    println("Main numbers: ${mainNumbers.joinToString(" ")}")
    println("Powerball: $powerball")
}


/*
run:

Random Powerball numbers:
Main numbers: 8 17 23 48 66
Powerball: 1

*/

 



answered Jul 30 by avibootz

Related questions

...