How to select random two digits from anywhere in a number with Go

1 Answer

0 votes
package main

import (
    "fmt"
    "math/rand"
    "strconv"
    "time"
)

// Function to select random two distinct digits from a number
func getRandomTwoDigits(number int64) (string, error) {
    numStr := strconv.FormatInt(number, 10)

    if len(numStr) < 2 {
        return "", fmt.Errorf("number must have at least 2 digits")
    }

    // Generate two distinct random indices
    i := rand.Intn(len(numStr))
    j := i
    for j == i {
        j = rand.Intn(len(numStr))
    }

    // Form the two-digit string
    return string([]byte{numStr[i], numStr[j]}), nil
}

func main() {
    rand.Seed(time.Now().UnixNano())

    num := int64(1234567)
    randomTwo, err := getRandomTwoDigits(num)
    if err != nil {
        fmt.Println("Error:", err)
        return
    }

    fmt.Println("Random two digits:", randomTwo)
}



/*
run:

Random two digits: 64

*/

 



answered Nov 26, 2025 by avibootz
...