Overview
KB
Technical FAQ
PHP Manual
CSS2 Manual
HTML Manual
JS Guide
JS Reference
PhpDock Manual
Nu-Coder Manual
PhpExpress Manual
PHP Joomla
Development
Learn PHP
 
<Random\Randomizer::shuffleArrayRandom\Randomizer::__unserialize>
^Random\RandomizerLast updated: Mon, 26 Oct 2026

Random\Randomizer::shuffleBytes

(PHP 8 >= 8.2.0)

Random\Randomizer::shuffleBytes — Get a byte-wise permutation of a string

Description

public function Random\Randomizer::shuffleBytes(string $bytes): string

Returns a uniformly selected permutation of the input bytes.

Each possible permutation of the input bytes is equally likely to be returned.

Parameters

bytes

The string whose bytes are shuffled.

The input string will not be modified.

Return Values

A permutation of the bytes of bytes.

Errors/Exceptions

Examples

Example #1 Random\Randomizer::shuffleBytes() example

<?php
$r = new \Random\Randomizer();

// Shuffle bytes in a string:
echo "«", $r->shuffleBytes("PHP is great!"), "»\n";
?>

The above example will output something similar to:

« ga rHs!PPiet»

Example #2 Byte-wise shuffling breaks Unicode characters

<?php
$r = new \Random\Randomizer();

$unicode = "🍎, 🥝, 🍌, 🍑, 🍇";
$shuffled = $r->shuffleBytes( $unicode );

// Byte-wise shuffling of non-ASCII characters destroys them,
// resulting in invalid sequences (indicated by the Unicode
// replacement character) or even entirely different characters
// appearing in the output.
echo "Original: ", $unicode, "\n";
echo "Shuffled: «", $shuffled, "»\n";
echo "Shuffled Bytes: ", bin2hex($shuffled), "\n";
?>

The above example will output something similar to:

Original: 🍎, 🥝, 🍌, 🍑, 🍇
Shuffled: «� ��,�����🍟,� �� �, �,��»
Shuffled Bytes: 87208e912c8d9fa5f0f0f09f8d9f2cf09f208c9d20f02c209f2c8d8d

<Random\Randomizer::shuffleArrayRandom\Randomizer::__unserialize>
^Random\RandomizerLast updated: Mon, 26 Oct 2026