Функция srand в диапазоне > 100 000?
Функция srand вообще ничего не генерирует. Генерирует rand. Диапазон легко расширить:
cppstudio.com/post/834
Нужно объединить биты нескольких случайных значений сгенерированных rand, так чтобы получилось число, в котором столько значащих битов, сколько в верхней границе диапазона. А потом оставлять только значения входящие в диапазон, остальные откидывать и генерировать снова. Например:#include <inttypes.h>
#include <stdlib.h>

static int width(uint64_t v)
{
    int i;

    for (i = 0; v; ++i)
        v >>= 1;
    return i;
}

uint64_t big_rand(uint64_t low, uint64_t high)
{
    uint64_t d = high - low;
    int rn;
    int n;

    assert(low < high);
    rn = width(RAND_MAX);
    n = width(d);
    for (;;) {
        uint64_t v = 0;
        int i;

        for (i = 0; i < n; i += rn) {
            v |= rand() << i;
        }
        if (i != n) {
            v &= ~(((UINT64_C(1) << (i - n)) - 1) << n);
        }
        if (v <= d) {
            return v + low;
        }
    }
}