The naive way is presumably to just throw all the floats in a hat, mix them up, and pull one out. This is the method you described.
The problem here is that the floats clump together around zero, and they spread out further away from zero. So the hat-method is biased towards smaller numbers.
A possible better method -- this is just an educated guess -- might be to divide your interval in half, pick the left or right half randomly, and then divide the resulting interval in half, etc. until your interval contains only one float. I'm not sure how efficient this would be to implement, or if there are any edge-cases to consider, but it would at least avoid the inherently biased distribution of the floats.
The problem here is that the floats clump together around zero, and they spread out further away from zero. So the hat-method is biased towards smaller numbers.
A possible better method -- this is just an educated guess -- might be to divide your interval in half, pick the left or right half randomly, and then divide the resulting interval in half, etc. until your interval contains only one float. I'm not sure how efficient this would be to implement, or if there are any edge-cases to consider, but it would at least avoid the inherently biased distribution of the floats.