Just to try to prevent this thread being overwhelming for a newcomer, let me just highlight the straightforward answer:
10*(1-rand())
Analysis:
-
rand()is uniform from[0, 1) -
1-rand()is uniform from(0, 1] -
10*(1-rand())is uniform from(0, 10]
This is a totally fine, simple answer. Is it perfectly uniformly distributed? Meh, maybe, maybe not but the chance that it matters for this use case is negligible.