What is chance?
The Chance npm package is a minimalist generator of random strings, numbers, and other utilities. It is designed to help developers create random data for testing, simulations, and more. The package offers a wide range of functionalities, from generating random names, addresses, and phone numbers to creating random numbers, characters, and even custom random generators.
What are chance's main functionalities?
Basic Random Data Generation
This feature demonstrates how to generate basic random data such as names and integers. The 'name' method generates a random full name, while the 'integer' method generates a random integer within a specified range.
const Chance = require('chance');
const chance = new Chance();
// Generate a random name
console.log(chance.name());
// Generate a random integer
console.log(chance.integer({min: 0, max: 100}));
Advanced Random Data Generation
This feature showcases the generation of more complex data types like addresses and geo-coordinates. The 'address' method returns a random address, and the 'coordinates' method returns a random latitude and longitude pair.
const Chance = require('chance');
const chance = new Chance();
// Generate a random address
console.log(chance.address());
// Generate a random geo-coordinate
console.log(chance.coordinates());
Custom Random Data Generation
This feature illustrates how to create custom random data generators using Chance. In this example, a simple dice roll function is created that returns a random integer between 1 and 6.
const Chance = require('chance');
const chance = new Chance();
// Custom random generator for a dice roll
function diceRoll() {
return chance.integer({min: 1, max: 6});
}
console.log(diceRoll());
Other packages similar to chance
faker
Faker is a popular alternative to Chance that focuses on generating massive amounts of fake data, especially for testing purposes. It supports a wide range of data types similar to Chance but also includes locales for generating data in specific languages and formats.
random-js
Random-js is a mathematically correct random number generator library for JavaScript. It offers a lower-level approach compared to Chance, providing tools to generate random values using various distributions. It's more suited for simulations and games that require specific random behavior.
Chance
Chance - Random generator helper for JavaScript
Homepage: http://chancejs.com
Many more details on http://chancejs.com but this single
library can generate random numbers, characters, strings, names, addresses,
dice, and pretty much anything else.
It includes the basic building blocks for all these items and is built on top
of a Mersenne Twister so it can generate these things with repeatability, if
desired.
Packages
Bower
It can also be used with Bower
bower install chance
then in the HTML of your app:
<script type="text/javascript" src="app/bower_components/chance/chance.min.js"></script>
<script>
alert(chance.string());
</script>
npm
npm install chance
spm
It can also be used with spm.
spm install chance
Usage
Browser
Chance instantiates itself onto the window. This means that in the simplest case you can just include the script tag then use an instance of Chance immediately.
<script src="chance.js"></script>
<script>
console.log(chance.string());
</script>
More info
CLI
Chance CLI has moved to its own project!
Node.js
And it can be used in Node.js.
var Chance = require('chance'),
chance = new Chance();
chance.zip();
RequireJS
Chance also includes an AMD define so it can be used with RequireJS.
require(['Chance'], function(Chance) {
var chance = new Chance();
var my_random_integer = chance.integer();
});
Dependent tools
Know a library that uses Chance that isn't here? Update the README and submit a PR!
Author
Victor Quinn
http://victorquinn.com
Please feel free to reach out to me if you have any questions or suggestions.
Contributors
THANK YOU!
project : chancejs
repo age : 3 years, 1 month
active : 195 days
commits : 682
files : 28
authors :
446 Victor Quinn 65.4%
26 Oliver Salzburg 3.8%
13 Tim Petricola 1.9%
12 Alex DiLiberto 1.8%
11 davmillar 1.6%
11 Matteo Fogli 1.6%
7 Jan Tojnar 1.0%
7 AminaG 1.0%
7 jonbev 1.0%
6 Matt Klaber 0.9%
6 Patrick Mowrer 0.9%
5 Michael Cordingley 0.7%
4 Geoff Russel 0.6%
4 anio 0.6%
4 Chris Villarreal 0.6%
4 leesei 0.6%
4 Kevin Garnett 0.6%
4 Abhijeet Pawar 0.6%
4 spayton 0.6%
4 Dominic Barnes 0.6%
4 Avishaan 0.6%
3 Nicholas Johnson 0.4%
3 Nate Clark 0.4%
3 qjcg 0.4%
3 Alexandr Lozovyuk 0.4%
2 somejeff 0.3%
2 Rafael Andrade de Oliveira 0.3%
2 Kris Van Houten 0.3%
2 vird 0.3%
2 xshyamx 0.3%
2 Adam Krebs 0.3%
2 Franco Victorio 0.3%
2 The Usual Coder 0.3%
2 Michael Sakaluk 0.3%
2 Mihail Petrov 0.3%
2 Nathan MacInnes 0.3%
2 Ng Patrick 0.3%
2 dhilipsiva 0.3%
2 Stefan Penner 0.3%
2 Iskren Chernev 0.3%
2 Cube ix 0.3%
2 Daniel Biedma 0.3%
2 Pascal Borreli 0.3%
2 Andreas Koeberle 0.3%
2 SeeSchloss 0.3%
2 max4ever 0.3%
2 path411 0.3%
2 shyam 0.3%
1 mamrehn 0.1%
1 Adam Pointer 0.1%
1 Amit Merchant 0.1%
1 Billy Moon 0.1%
1 Bitdeli Chef 0.1%
1 Brian.Barnett 0.1%
1 Danny Yates 0.1%
1 Doug Lawrence 0.1%
1 Drew Brokke 0.1%
1 Eu Rafa 0.1%
1 Guillaume Bourel 0.1%
1 Hilke Heremans 0.1%
1 Jean Paulo de Almeida 0.1%
1 Johannes Stein 0.1%
1 Joshua Bemenderfer 0.1%
1 Matt Altermatt 0.1%
1 Piotrek Dąbrowski 0.1%
1 Richard Anaya 0.1%
1 Ryan Tenney 0.1%
1 Samuel Greene 0.1%
1 Thomas Rueckstiess 0.1%
1 Tomasz Ducin 0.1%
1 Winker Xiao 0.1%
1 afc163 0.1%
1 ddunning 0.1%
1 flaviolivolsi 0.1%
1 flrent 0.1%
1 kiran 0.1%
1 kkroner 0.1%
1 lkptrzk 0.1%
1 tsc 0.1%
Contribute!
Be a part of this project! You can run the test using the following.
- Install dependencies from package.json by running
npm install
- Run the test via
npm test
- Make some fun new modules!
Note: Formerly, there was a develop
branch where active development would
happen, but now it's all on master
baby. Just submit PRs directly to master
.
Sorry if the develop
branch going away caused any trouble, but it was time to
rip the bandaid off.
This project is licensed under the MIT License so feel free to hack away :)
Proudly written in Washington, D.C.