random.js

/**
 * Random number or item from array  
 * @since 0.0.3
 * @example random(5, 10); // returns floating point number between 5 and 10
 * Math.round(random(10)); // returns integer between 0 and 10
 * @param {number|array} [min] Minimum number or array
 * @param {number} [max] Maximum number
 * @returns {mixed} If no parameters, a random number between 0 and 1  
 * if number, a random number between 0 and number
 * if two numbers, a random number between those numbers  
 * if array, a random item from that array
 */
function random(min, max) {
  const rand = Math.random();
  if (arguments.length === 0) return rand;
  if (arguments.length === 1) {
    if (typeof min === 'number') return rand * min;
    if (Array.isArray(min)) return min[Math.floor(rand * min.length)];
  }
  if (arguments.length === 2) {
    if (min > max) {
      [max, min] = [min, max];
    }
    return rand * (max - min) + min;
  }
  return 'Err, invalid arguments to random method';
}

module.exports = random;