What is the recommended method to ensure that randomly selected entries from an array do not appear in blocks?

When selecting random entries from an array, it is important to ensure that these entries are not selected in consecutive blocks to avoid bias and ensure randomness. One way to achieve this is by shuffling the array before selecting entries, which will randomize the order of elements and prevent consecutive entries from being selected.

// Shuffle the array before selecting random entries
$array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
shuffle($array);

// Select random entries from the shuffled array
$blockSize = 3;
$selectedEntries = [];
$index = 0;

while ($index < count($array)) {
    $block = array_slice($array, $index, $blockSize);
    $selectedEntries[] = $block[array_rand($block)];
    $index += $blockSize;
}

print_r($selectedEntries);