# Random Function

## Recommended Posts

How can i prevent the same random number twice. Etc Random = (1,10,1) If the first random is 9 i dont want 9 to show up at the next random number

Thanks

##### Share on other sites

you could store the numbers in an array and if the number was found reroll

##### Share on other sites

How can i prevent the same random number twice. Etc Random = (1,10,1) If the first random is 9 i dont want 9 to show up at the next random number

Thanks

Try this:

```#include <Array.au3>

Dim \$randomArray[11]
FillArrayRandom(\$randomArray, 1, 10, 1)
_ArrayDisplay(\$randomArray)

Func FillArrayRandom(ByRef \$array, \$min, \$max, \$maxOccurence, \$round = 0, \$maxTries = 10000)
Local \$i, \$number
For \$i = 1 to UBound(\$array)-1
For \$n = 0 to \$maxTries
\$number = Round(Random(\$min, \$max), \$round)
If \$maxOccurence = 0 OR _KeyInArrayCount(\$array, \$number) < \$maxOccurence Then ExitLoop
Next
If _KeyInArrayCount(\$array, \$number) >= \$maxOccurence Then Return SetError(1)
\$array[\$i] = \$number
Next
EndFunc

Func _KeyInArrayCount(\$array, \$key)
Local \$i, \$n = 0
For \$i = 1 to UBound(\$array)-1
If \$array[\$i] = \$key Then \$n += 1
Next
Return \$n
EndFunc```

When the words fail... music speaks

##### Share on other sites

Sure, I remembered writing a function that generated an array with random numbers that didn't repeat themselves.

It's posted in autoit wrappers

#515701

Broken link? PM me and I'll send you the file!

Thanks for help

## Create an account

Register a new account

×

• Wiki

• Back

• Git