Version of biasedRange that operates on bigint values
biasedRange was not made into a generic or to take in (number|bigint),
because that introduces a bunch of complexity overhead related to type
differentiation.
Scaling is used internally so that the number of possible indices is
significantly larger than num_steps. This is done to avoid duplicate entries
in the resulting range due to quantizing to integers during the calculation.
If a and b are close together, such that the number of integers between them
is close to num_steps, then duplicates will occur regardless of scaling.
Version of biasedRange that operates on bigint values
biasedRange was not made into a generic or to take in (number|bigint), because that introduces a bunch of complexity overhead related to type differentiation.
Scaling is used internally so that the number of possible indices is significantly larger than num_steps. This is done to avoid duplicate entries in the resulting range due to quantizing to integers during the calculation.
If a and b are close together, such that the number of integers between them is close to num_steps, then duplicates will occur regardless of scaling.