jefhar/fisher-yates

A PHP implementation of the Fisher-Yates shuffle

1.0.1 2025-06-11 01:35 UTC

This package is auto-updated.

Last update: 2025-06-11 01:40:09 UTC


README

A PHP implementation of the Fisher-Yates shuffle

Installing

This requires a minimum version of PHP 8.2.

Use Composer:

composer require jefhar/fisher-yates

Usage

use Lmc\FisherYates\FisherYates;

$itemsToShuffle = ['a', 'b', 'c', 'd', 'e'];

$fy = new FisherYates($itemsToShuffle);

$result = $fy->shuffle();

If you need a deterministic shuffle, you can send a seed to the shuffle method:

use Lmc\FisherYates\FisherYates;

$seed = 123_456_789;
$itemsToShuffle = ['a', 'b', 'c', 'd', 'e'];
$fy = new FisherYates($itemsToShuffle);

var_dump($fy->shuffle($seed));
array(5) {
  [0]=>
  string(1) "d"
  [1]=>
  string(1) "a"
  [2]=>
  string(1) "b"
  [3]=>
  string(1) "e"
  [4]=>
  string(1) "c"
}