No. It will not ever produce 16. Let me break it down in smaller steps:

Math.floor(Math.random() * (15 - 5 + 1)) + 5

Math.floor(Math.random() * (11)) + 5

Math.random() will produce a number between 0 and 1 (including 0 but not including 1). This means, this will always be a fraction of some kind (or zero). In this case, the fraction would be multiplied by 11. Let’s say for example Math.random() returned 0.3, then you would have:

Math.floor(0.3 * (11)) + 3

Math.floor(3.3) + 3

Math.floor returns removes the fraction portion of a number, so in this case, you are left with just 3