| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 | 
							- var baseRandom = require('./_baseRandom'),
 
-     isIterateeCall = require('./_isIterateeCall'),
 
-     toFinite = require('./toFinite');
 
- /** Built-in method references without a dependency on `root`. */
 
- var freeParseFloat = parseFloat;
 
- /* Built-in method references for those with the same name as other `lodash` methods. */
 
- var nativeMin = Math.min,
 
-     nativeRandom = Math.random;
 
- /**
 
-  * Produces a random number between the inclusive `lower` and `upper` bounds.
 
-  * If only one argument is provided a number between `0` and the given number
 
-  * is returned. If `floating` is `true`, or either `lower` or `upper` are
 
-  * floats, a floating-point number is returned instead of an integer.
 
-  *
 
-  * **Note:** JavaScript follows the IEEE-754 standard for resolving
 
-  * floating-point values which can produce unexpected results.
 
-  *
 
-  * @static
 
-  * @memberOf _
 
-  * @since 0.7.0
 
-  * @category Number
 
-  * @param {number} [lower=0] The lower bound.
 
-  * @param {number} [upper=1] The upper bound.
 
-  * @param {boolean} [floating] Specify returning a floating-point number.
 
-  * @returns {number} Returns the random number.
 
-  * @example
 
-  *
 
-  * _.random(0, 5);
 
-  * // => an integer between 0 and 5
 
-  *
 
-  * _.random(5);
 
-  * // => also an integer between 0 and 5
 
-  *
 
-  * _.random(5, true);
 
-  * // => a floating-point number between 0 and 5
 
-  *
 
-  * _.random(1.2, 5.2);
 
-  * // => a floating-point number between 1.2 and 5.2
 
-  */
 
- function random(lower, upper, floating) {
 
-   if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {
 
-     upper = floating = undefined;
 
-   }
 
-   if (floating === undefined) {
 
-     if (typeof upper == 'boolean') {
 
-       floating = upper;
 
-       upper = undefined;
 
-     }
 
-     else if (typeof lower == 'boolean') {
 
-       floating = lower;
 
-       lower = undefined;
 
-     }
 
-   }
 
-   if (lower === undefined && upper === undefined) {
 
-     lower = 0;
 
-     upper = 1;
 
-   }
 
-   else {
 
-     lower = toFinite(lower);
 
-     if (upper === undefined) {
 
-       upper = lower;
 
-       lower = 0;
 
-     } else {
 
-       upper = toFinite(upper);
 
-     }
 
-   }
 
-   if (lower > upper) {
 
-     var temp = lower;
 
-     lower = upper;
 
-     upper = temp;
 
-   }
 
-   if (floating || lower % 1 || upper % 1) {
 
-     var rand = nativeRandom();
 
-     return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);
 
-   }
 
-   return baseRandom(lower, upper);
 
- }
 
- module.exports = random;
 
 
  |