Generate a random number with fixed digit without leading zero

I’m using this one liner to generate a random 18 digit number :

Math.floor(100000000000000000 + Math.random() * 900000000000000000)

The problem is that it always contains one or more zeros at the end, and I don’t understand why.

How can I generate a really random number that always contains 18 digits, and without a leading zero?