Hello everyone, I was getting this error where it says “invalid argument #2 to ‘random’ (interval is empty)”. I’ll link the script down below:

```
local Players = game:GetService("Players")
local rand = math.random(1,3720000000)
local charAppearance = Players:GetCharacterAppearanceAsync(rand)
print("User ID: ",rand, " is a lucky person!")
```

If anyone has any solutions, please lemme know.

I believe the second number is too big for it to calculate.

Oh, how come?

I calculated larger nums like 1e308 with math.random()

I’m not sure… When I tried a number with a few less 0’s it worked

```
local rand = math.random(1,3.72e9)
```

Fixed it, but doesn’t work

For some reason, If we try using **372e6** it works, But **372e7** doesn’t - By knowing this, We can assume there’s a certain limit for generating random numbers using `math.random`

. Maybe you could try using `Random.new():NextInteger()`

instead?

```
-- Works
local RandomOne = math.random(1, 372e6)
print(RandomOne)
-- Errors
local RandomTwo = math.random(1, 372e7)
print(RandomTwo)
```

I get your point, but I believe there were a much, much greater limit than 3.72e9

There’s indeed a much bigger limit. I did a research and i found out that this is an “issue” with math random itself. *(Can be found at ***this post**)

As i mentioned above, You should use the **Random** Object instead, Since it doesn’t has this problem and also comes with some extra methods related to number-generation.

I did a bit of testing, and the limit for `Random:NextNumber`

is somewhere between 2^1023 and 2^1024, which I assume is a floating point limit thing. For `Random:NextInteger`

, it starts returning negative values for 2^63, which I assume is an integer overflow thing.

Yeah, or I can just make my own random func

Yeah, so I used this line of code:

```
local random = Random.new(tick()):NextInteger(1,3.72e9)
```

And I believe it has a much higher limit.