> For the complete documentation index, see [llms.txt](https://neupokoev-n.gitbook.io/godot-recipes/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://neupokoev-n.gitbook.io/godot-recipes/algorithms/fisher-yates-algorithm.md).

# Fisher-Yates algorithm

Shuffle algorithm

```gdscript
var rng = RandomNumberGenerator.new()

func _ready():
	rng.randomize()

func shuffle(array: Array):
	var length = array.size()
	while length > 0:
		length = length - 1
		var i = rng.randi_range(0, length)
		var temp = array[i]
		array[i] = array[length]
		array[length] = temp
	return array
```
