# shuffle-array

> Randomize the order of the elements in a given array.

Latest version **1.0.1** (published 2017-02-16) · MIT license · 0 weekly downloads

## Install

```sh
npm install shuffle-array
pnpm add shuffle-array
yarn add shuffle-array
bun add shuffle-array
```

## Health

**Score 23/100 (F)** — status: abandoned.

Positive: has types package; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.1 |
| Published | 2017-02-16 |
| First published | 2014-01-24 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | separate (@types/shuffle-array) |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 167 |
| Author | Guille Paz |
| Maintainers | pazguille |
| Keywords | random, shuffle, array |

## Links

- npm: https://www.npmjs.com/package/shuffle-array
- Repository: https://github.com/pazguille/shuffle-array
- Homepage: https://github.com/pazguille/shuffle-array#readme
- Issues: https://github.com/pazguille/shuffle-array/issues
- npm.io page: https://npm.io/package/shuffle-array

## Recent versions

- 1.0.1 (latest) — 2017-02-16
- 1.0.0 — 2016-04-09
- 0.0.1-security — 2016-03-23
- 2.0.0 — 2016-03-22
- 0.1.2 — 2015-12-29
- 0.1.1 — 2015-11-30
- 0.1.0 — 2014-12-30
- 0.0.2 — 2014-08-20
- 0.0.0 — 2014-01-24

## README

# shuffle-array

[![NPM version][npm-image]][npm-link] [![License][lic-image]][npm-link] [![Build status][travis-image]][travis-link] [![Coverage Status][coverage-image]][coverage-link] [![devDependency status][devdeps-image]][devdeps-link] [![downloads][dt-image]][npm-link]

> Randomize the order of the elements in a given array using the [Fisher-Yates algorithm](https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle).

## Installation

    $ npm install shuffle-array

    $ bower install shuffle-array

    $ component install pazguille/shuffle-array

## Usage
```js
var shuffle = require('shuffle-array'),
    collection = [1,2,3,4,5];

shuffle(collection);

console.log(collection); // returns [4, 3, 1, 5, 2]
```

## API

### shuffle(arr, [options])
Randomizes the order of the elements in a given `array`.
- `arr` - The given array.
- [`options`] {Object} - Optional configuration options.
- [`options.copy`] {Boolean} - Sets if should return a shuffled copy of the given array. By default it's a falsy value.
- [`options.rng`] {Function} - Specifies a custom random number generator.

```js
shuffle([1,2,3,4,5]); // returns [4, 3, 1, 5, 2]

// Return a copy of the given array
shuffle([1,2,3,4,5], { 'copy': true }); // returns [4, 3, 1, 5, 2] (copied)
```

### shuffle.pick(arr, [options])
Pick one or more `random` elements from the given `array`.
- `arr` - The given array.
- [`options`] {Object} - Optional configuration options.
- [`options.picks`] {Number} - Specifies how many random elements you want to pick. By default it picks 1.
- [`options.rng`] {Function} - Specifies a custom random number generator.

```js
shuffle.pick([1,2,3,4,5]); // returns 5

// Return a random collection with 2 elements
shuffle.pick([1,2,3,4,5], { 'picks': 2 })); // returns [4, 3]
```

## Build

    npm run dist

## Test

    npm test

## With :heart: by
- Guille Paz (Front-end developer | Web standards lover)
- E-mail: [guille87paz@gmail.com](mailto:guille87paz@gmail.com)
- Twitter: [@pazguille](http://twitter.com/pazguille)
- Web: [http://pazguille.me](http://pazguille.me)

## License
MIT license. Copyright © 2014.

[npm-image]: https://img.shields.io/npm/v/shuffle-array.svg
[lic-image]: https://img.shields.io/npm/l/shuffle-array.svg
[npm-link]: https://npmjs.org/package/shuffle-array
[travis-image]: https://img.shields.io/travis/pazguille/shuffle-array.svg
[travis-link]: https://travis-ci.org/pazguille/shuffle-array
[devdeps-image]: https://img.shields.io/david/dev/pazguille/shuffle-array.svg
[devdeps-link]: https://david-dm.org/pazguille/shuffle-array#info=devDependencies
[dt-image]: https://img.shields.io/npm/dt/shuffle-array.svg
[coverage-image]: https://img.shields.io/coveralls/pazguille/shuffle-array.svg
[coverage-link]: https://coveralls.io/github/pazguille/shuffle-array

---
_Source: https://npm.io/package/shuffle-array · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
