Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

JavaScript JavaScript Foundations Numbers The Math Object

error...... var chance = Math.random(0, 20);

var chance = Math.random(0, 20);

<!DOCTYPE html>
<html lang="en">
    <title>JavaScript Foundations: The Math Object</title>
    <link rel="stylesheet" href="core.css">
      var diameter = 5.75,
          a = 17,
          b = 42,
          c = 1337,
          ageIfILiveToYear2100 = (new Date(2100, 0, 1) - new Date(1995, 5, 16, 7, 20)) / (1000 * 60 * 60 * 24 * 365.242);
        var circumference = diameter * Math.PI;
        var chance = Math.random(0, 20);
      The JavaScript Math object has the following
      constant (among others):
          Approximately 3.14159. Pi (π) is used
          to determine the circumference of a circle
          given its diameter by multiplying the diameter
          by π. Geometery refresher: the circumference
          of a circle is the distance around the outside
          edge. The diameter is the width of the circle.

      The JavaScript Math object also has the following
      methods (among others):
          Returns a random number between 0 and 1
      Math.max(a, b, ...)
          Returns the largest value of the passed
          Returns the value of a number rounded down to
          the nearest integer

    <h1>JavaScript Foundations</h1>
    <h2>The Math Object</h2>
    <script src="viewer.js"></script>

3 Answers

Math.random returns a random number between 0 and 1. So in order to go between 0 and 20 you would have to do:

var chance = Math.floor((Math.random() * 20) + 0); // random number between 0-20
var chance = Math.floor((Math.random() * 20) + 1);; // random number between 1-20 
Ken Alger
Ken Alger
Treehouse Teacher


The method Math.random() does not accept arguments such as 0, 20.

Read more about the function here.

If you are trying to generate a random number between 0 and 20, try:

Math.floor(Math.random() * 20) + 0;

The Math.floor(x) function returns the largest integer less than or equal to a number x. You would also multiply the random number by the upper limit of your target range and then add your lower target range to it. Obviously if you are going from 0 you don't need to add the zero, but if you wanted 1 to 20, you would replace the 0 in the code with a 1.

Happy coding,


thanks everyone! :)