How to Get Random Permutation of Integers in Golang? Last Updated : 26 Mar, 2020 Comments Improve Suggest changes Like Article Like Report Go language provides inbuilt support for generating random numbers of the specified type with the help of a math/rand package. This package implements pseudo-random number generators. These random numbers are generated by a source and this source produces a deterministic sequence of values whenever the program run. And if you want to random numbers for security-sensitive work, then use the crypto/rand package. You are allowed to generate a slice of n ints which contains a non-negative pseudo-random permutation of the integers [0, n) from the default source with the help of the Perm() Function provided by the math/rand package. So, you need to add a math/rand package in your program with the help of the import keyword to access the Perm() function. Syntax: func Perm(n int) []int Let us discuss this concept with the help of the given examples: Example 1: C // Golang program to illustrate // how to get a random number package main import ( "fmt" "math/rand" ) // Main function func main() { // Getting the random permutation // of integers in the form of slice // Using Perm() function for _, res_1 := range rand.Perm(4) { // Displaying the result fmt.Println("Slice 1 Element: ", res_1) } for _, res_2 := range rand.Perm(3) { // Displaying the result fmt.Println("Slice 2 Element: ", res_2) } } Output: Slice 1 Element: 0 Slice 1 Element: 1 Slice 1 Element: 2 Slice 1 Element: 3 Slice 2 Element: 1 Slice 2 Element: 2 Slice 2 Element: 0 Example 2: C // Golang program to illustrate // how to get a random permutation // of integers package main import ( "fmt" "math/rand" ) // Main function func main() { // Getting the random permutation // of integers in the form of slice // Using Perm() function res_1 := rand.Perm(5) res_2 := rand.Perm(7) fmt.Println("Slice 1: ", res_1) // Finding the length of the slice fmt.Println("Length of Slice 1: ", len(res_1)) // Finding the capacity of the slice fmt.Println("Capacity of Slice 1: ", cap(res_1)) fmt.Println("Slice 2: ", res_2) // Finding the length of the slice fmt.Println("Length of Slice 2: ", len(res_2)) // Finding the capacity of the slice fmt.Println("Capacity of Slice 2: ", cap(res_2)) } Output: Slice 1: [0 4 2 3 1] Length of Slice 1: 5 Capacity of Slice 1: 5 Slice 2: [4 1 5 0 3 2 6] Length of Slice 2: 7 Capacity of Slice 2: 7 Create Quiz Comment K Kirti_Mangal Follow 0 Improve K Kirti_Mangal Follow 0 Improve Article Tags : Go Language Explore OverviewGo Programming Language (Introduction) 7 min read How to Install Go on Windows? 3 min read How to Install Golang on MacOS? 4 min read Hello World in Golang 3 min read FundamentalsIdentifiers in Go Language 3 min read Go Keywords 2 min read Data Types in Go 7 min read Go Variables 9 min read Constants- Go Language 6 min read Go Operators 9 min read Control StatementsGo Decision Making (if, if-else, Nested-if, if-else-if) 5 min read Loops in Go Language 5 min read Switch Statement in Go 2 min read Functions & MethodsFunctions in Go Language 3 min read Variadic Functions in Go 3 min read Anonymous function in Go Language 2 min read main and init function in Golang 2 min read What is Blank Identifier(underscore) in Golang? 3 min read Defer Keyword in Golang 3 min read Methods in Golang 3 min read StructureStructures in Golang 7 min read Nested Structure in Golang 3 min read Anonymous Structure and Field in Golang 3 min read ArraysArrays in Go 7 min read How to Copy an Array into Another Array in Golang? 3 min read How to pass an Array to a Function in Golang? 2 min read SlicesSlices in Golang 14 min read Slice Composite Literal in Go 3 min read How to sort a slice of ints in Golang? 2 min read How to trim a slice of bytes in Golang? 3 min read How to split a slice of bytes in Golang? 3 min read StringsStrings in Golang 7 min read How to Trim a String in Golang? 2 min read How to Split a String in Golang? 3 min read Different ways to compare Strings in Golang 2 min read PointersPointers in Golang 8 min read Passing Pointers to a Function in Go 3 min read Pointer to a Struct in Golang 3 min read Go Pointer to Pointer (Double Pointer) 4 min read Comparing Pointers in Golang 3 min read ConcurrencyGoroutines - Concurrency in Golang 2 min read Select Statement in Go Language 4 min read Multiple Goroutines 2 min read Channel in Golang 7 min read Unidirectional Channel in Golang 2 min read Like