It is technically wrong that randf() includes 1.0.
If try to halve the interval, you get:
one part from 0.0 (inclusive) to 0.5 (exclusive)
another part from 0.5 (inclusive) to 1.0 (inclusive)
Both parts have theoretically infinite numbers but the second one has one single number more than the first one. (If you include 0.5 in the first part instead, it is vice versa.)
This is a general problem and not limited to halving.
So why does Godot do this? Is it just implemented wrong? Or does the small difference simply not matter (enough)?
Well, if you restrict me like that, no, I cannot. =P
Seriously, though, I can’t. And even if I could, I don’t think it would really matter.
But it is an uneven distribution, so there’s always the chance, you know…? I screwed up random distribution myself (for other reasons but still), so I know how easy it is to screw it up.