title: Javascript Random Integer Between two Numbers
body: <p>I'm trying to create a random number generator that generates random numbers between two numbers. For instance, let's say I want to generate a random number between 4 and 10, I would want it to be able to choose from any number from 4 - 10. Here is what I tried: </p>
  
  <pre><code>var randNumMin = 4;
  var randNumMax = 10;
  var randInt = (Math.floor(Math.random() * (randNumMax - randNumMin + 1)) + randNumMin);
  </code></pre>
  
  <p>However, that didn't seem to work and generated weird random numbers that weren't between 4 and 10, and some began with 0. What would be the correct algorithm to do this?</p>
  
  <p>Here is the code I'm implementing the algorithm in: </p>
  
  <pre><code>$(function() {
      $('#generateRandNums').click(function() {
  
          var numCount = document.getElementById("randNumCount").value;
          var randNumMin = document.getElementById("randNumMin").value;
          var randNumMax = document.getElementById("randNumMax").value;
  
          if (numCount.match(/^[\d]*$/ ) &amp;&amp; randNumMin.match(/^[\d]*$/ ) &amp;&amp; randNumMax.match(/^[\d]*$/ )) {       
              if (numCount == "" || randNumMin == "" || randNumMax == "")  {
                  alert ("Please fill out all forms then try again.");
  
              } else {
                  if (randNumMin&gt;randNumMax) {
                      alert ("Please make sure your first number is smaller than the second, then try again.");
                  } else {
                      if (randNumMin&lt;0) {
                          alert ("Please make sure that you generate a positive number of random numbers, then try again.");
                      } else {
  
                          if (numCount&gt;1) {
                              var randResult = ("You generated " + numCount + " random numbers between " + randNumMin + " and " + randNumMax + " and got the numbers ")
                              oneNumber = 0;
                          } else {
                              var randResult = ("You generated a random number between " + randNumMin + " and " + randNumMax + " and got the number ");
                              oneNumber = 1;
                          }
                          for (i=0;i&lt;numCount;i++) {
                          //Get a random number between randNumMin and randNumMax
                          var randInt = (Math.floor(Math.random() * (randNumMax - randNumMin + 1)) + randNumMin);
                              if (i == numCount-1) {
                                  if (oneNumber == 0) {
                                      randResult = (randResult + "and " + randInt + ".");
                                  } else {
                                      randResult = (randResult + randInt + ".");
                                  }
                              } else {
                                  randResult = (randResult + randInt + ", ");
                              }
                          }
                          $("#randNumResults").val(randResult);
                      }
                  }
              }
          } else {
              alert ("Make sure you only enter numbers and no spaces, then try again.");
          }
  
      });
  });
  </code></pre>
  
  <p>I also tried replacing the randInt line with this: </p>
  
  <pre><code>var randInt = Math.floor((Math.random() * ((randNumMax + 1) - randNumMin)) + randNumMin);
  </code></pre>
  
  <p>It still didn't work.
  I'm not sure if the algorithm is wrong or I'm incorporating it wrong into the function. An answer is appreciated, thanks.</p>