Skip to content

shuffle (Lodash Compatibility) ​

Use es-toolkit's shuffle

This shuffle function includes additional processing for Lodash compatibility and operates slowly.

Instead, use the faster and more modern es-toolkit's shuffle.

Shuffles the elements of an array or object randomly and returns a new array.

typescript
const result = shuffle(collection);

Reference ​

shuffle(collection) ​

Uses the Fisher-Yates algorithm to randomly shuffle the elements of an array or object and returns a new array. The original is not modified.

typescript
import { shuffle } from 'es-toolkit/compat';

// Shuffle a number array
const numbers = [1, 2, 3, 4, 5];
const shuffled1 = shuffle(numbers);
// Returns: for example [3, 1, 5, 2, 4] (different order each time)

// Shuffle a string array
const fruits = ['apple', 'banana', 'cherry', 'date'];
const shuffled2 = shuffle(fruits);
// Returns: for example ['cherry', 'apple', 'date', 'banana']

// Shuffle object values
const obj = { a: 1, b: 2, c: 3, d: 4 };
const shuffled3 = shuffle(obj);
// Returns: for example [3, 1, 4, 2] (object values are randomly shuffled)

null or undefined is handled as an empty array.

typescript
import { shuffle } from 'es-toolkit/compat';

shuffle(null);
// Returns: []

shuffle(undefined);
// Returns: []

Parameters ​

  • collection (ArrayLike<T> | T | null | undefined): The array or object to shuffle.

Returns ​

(T[]): Returns a new array with elements randomly shuffled.

Released under the MIT License.