# list-randomizer

> automate randomisation of input lists

Latest version **1.0.3** (published 2023-07-13) · (MIT OR Apache-2.0) license · 0 weekly downloads

## Install

```sh
npm install list-randomizer
pnpm add list-randomizer
yarn add list-randomizer
bun add list-randomizer
```

## Health

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

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.3 |
| Published | 2023-07-13 |
| First published | 2023-07-12 |
| Weekly downloads | 0 |
| License | (MIT OR Apache-2.0) |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 7.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Nanyx |
| Maintainers | nanyx |
| Keywords | list, lists, random, randomizer, strings |

## Links

- npm: https://www.npmjs.com/package/list-randomizer
- Homepage: https://github.com/Nanyx/list-randomizer
- npm.io page: https://npm.io/package/list-randomizer

## Alternatives

- [@mce/gif](https://npm.io/package/@mce/gif.md) — 2.6K weekly downloads
- [cleanse](https://npm.io/package/cleanse.md) — 173 weekly downloads
- [str](https://npm.io/package/str.md) — 127 weekly downloads
- [naming](https://npm.io/package/naming.md) — 95 weekly downloads
- [tap-telco-api](https://npm.io/package/tap-telco-api.md) — 19 weekly downloads

## Recent versions

- 1.0.3 (latest) — 2023-07-13
- 1.0.2 — 2023-07-12
- 1.0.1 — 2023-07-12
- 1.0.0 — 2023-07-12

## README

# List Randomizer

A simple package to help automating the randomization of a (or multiple) list(s) of `Strings`.

## Install

```
> npm install --save list-randomizer
```

## Options
The `options` object let you customise how the randomizer will manipulate the information inside the feeded lists (see **advance usage**)

```js
let defaultOptions = {
  isRerollSame: false, /* In case of multiple roll on the same table, allow you to get the same value */
  reRollJoin: ", " /* In case of multiple roll on the same table, how the output will be join */
}
```

## Basic usage
Minimal information needed to use the lib :

```js
import ListRandomizer from 'list-randomiser';

let lstRandomizer = new ListRandomizer(null, ["list elem", "an other one", "etc..."]);
let myRandomSelectionArray = lstRandomizer.rnd(); /* output: ["one element of the list"] */
```

## Advance usage

### Multiple lists
You can feed multiple list on wich one element will output in sequence :

```js
let lstRandomizer = new ListRandomizer(null, ["Alfred", "Marcus", "Damien"], ["Smith", "O'Connel", "Miller"]);
let myRandomSelectionArray = lstRandomizer.rnd(); /* output ex: ["Marcus", "Miller"] */
```

### Fixed value
You can even fixe a string at a specific index of the output :

```js
const fruit = ["blueberry", "cherry", "strawberry"];
const media = ["toast", "pastry", "croissant"];

let lstRandomizer = new ListRandomizer(null, fruit, "jam", media);
let myRandomSelectionArray = lstRandomizer.rnd(); /* output ex: ["cherry", jam, "toast"] */
```

### Multiple roll from the same table
You may want to have a chance of getting more than one element from a specific list. To achive this behavior, simply put a `number` (or multiple) somwhere on the list. A value under `2` will result in no change. If a `number` has been randomize, every other `number` will be removed from the list.

```js
const fruit = ["blueberry", "cherry", "strawberry"];
const media = ["toast", 2, "pastry", "croissant"];

let lstRandomizer = new ListRandomizer(null, fruit, "jam", media);
let myRandomSelectionArray = lstRandomizer.rnd(); /* output ex: ["strawberry, blueberry", jam, "toast"] */
```

### Customizing the output
The `options` object let you manipulate the output of the result list :

```js
const monster = ["orc", "goblin", "dragon"];
const loot = ["50 gold pieces", "15 gems", "a magic sword", 3];

const options = {
  isRerollSame: true,
  reRollJoin: " and "
}

let lstRandomizer = new ListRandomizer(options, monster, " slain award you : ", loot);
let myRandomSelectionArray = lstRandomizer.rnd(); 
/* output ex: ["dragon", " slain award you : ", "50 gold pieces and 15 gems and 15 gems"] */
```

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