DEV Community

Alexandre Freire
Alexandre Freire

Posted on

Random numbers using Node.js package

Hello. Today I am going to share with you this very interesting and simple package to be implemented the “Random-Number.
https://www.npmjs.com/package/random-number

If you are unable to implement it in your project, leave your doubts in the comments that I will answer as soon as possible.

install

npm install random-number
Enter fullscreen mode Exit fullscreen mode

usage

var rn = require('random-number');rn(); // sample output → 0.704848874360323 # yes, this is just Math.random(), but it has some options
Enter fullscreen mode Exit fullscreen mode

default options

the exported function takes an option object with 3 meaningful properties

  • min : smallest possible value to return. defaults to 0 or max – 1 if max is defined
  • max : largest possible value to return. defaults to 1 or min + 1 if min is defined
  • integer : do you want whole numbers to be returned, or not.

defaults to false

Examples

all three
// this is the functionality i like the mostvar rn = require('random-number');var options = {  min:  -1000, max:  1000, integer: true}rn(options) // example outputs → -187, 636

If you need the same (or almost the same settings many time) you can create a generator instead of passing the options over and over again

var rn = require('random-number');var gen = rn.generator({  min:  -1000, max:  1000, integer: true})gen() // example outputs → -350
What is neat about generators, that you can overwrite any of the settings
generator( min, max, integer) – all arguments are optional:

var rn = require('random-number');var gen = rn.generator({  min:  -1000, max:  1000, integer: true})gen(500) // example outputs → 735gen(500, null, false) // example outputs → 828.6001032683998 
only min

var rn = require('random-number');var options = {  min: 9874316514 // example input}rn(options) // example output → 9874316514.958157
only max

var rn = require('random-number');var options = {  max: -9874316514 // example input , yes negative values do work}rn(options) // example output → -9874316514.075052
only integer

var rn = require('random-number');var options = {  integer: true}// this is basically a true/false random generator, with 50% chance to return truern(options) // example output → 1
min and max

var rn = require('random-number');var options = {  // example input , yes negative values do work  min:  -10, max: -1}rn(options) // example output → -2.47377512534149
min and integer or max and integer
// completely pointless, but whatevervar rn = require('random-number');var options = {  min:  1000, integer: true}rn(options) // example output → 1001options = {  max:  1000, integer: true}rn(options) // example output → 999
Enter fullscreen mode Exit fullscreen mode

Top comments (2)

Collapse
 
khrisl33t profile image
kHRISl33t • Edited

Why would you need a package for this scenario if you could do:

const generateRandomInt = (min, max) => Math.floor(Math.random() * (max - min)) + min;
Enter fullscreen mode Exit fullscreen mode

A package less, and only 1 line of code :)

In my opinion, it's not good to use packages which are doing very obvious things, you can easily implement these and you have more control if you want to change it later. (but that's my opinion)

Or if you want to use it to create fake data for a DB seed, you could use faker which has the same functionality.

Collapse
 
pentacular profile image
pentacular

A pseudo-random number generator that you cannot seed is not very useful.

I'd recommend looking for one for which you can supply a seed value -- perhaps 'prando'.