The numerator here should be `urng.front - urng.min`.  I also think you should reconsider the [0, 1] return interval and make it [0, 1) instead, in which case the denominator should be `(cast(FP) 1 + urng.max - urng.min)`.

If I recall right, it's better to declare the denominator on a separate line, as this is CTFE'able:

```D
immutable FP factor = 1 / (cast(FP) 1 + urng.max - urng.min);
immutable FP result = (urng.front - urng.min) * factor;
```