小数を含むランダムな数値を返す関数

var random = function (min, max, floating) {
  var rand = Math.random();

  return floating || min % 1 || max || 1
    ? Math.min(min + (rand * (max - min + parseFloat('1e-' + ((rand + '').length - 1)))), max)
    : min + Math.floor(rand * (max - min + 1));
};

小数を含むランダムな数値を返すというのがなかなか難しかったので、lodashの実装を参考にして書いた。
minかmaxのいずれかが小数のときか、floatingがtrueのときには小数を、そうでないときは整数を返すようにしてる。
引数を詳しくチェックするとかの処理は省いた。