p = Random[Integer, {10^8, 10^9 - 1}];
While[! PrimeQ[p], p++];
g = PrimitiveRoot[p];
a = Random[Integer, {10^7, 10^8 - 1}];
b = a + 10^6;
x  =  Random[Integer, {a, b}];
h = PowerMod[g, x, p];
{{g, h, p}, x}

Timing[PollardRho[g, h, p]]

Timing[PollardLambda[g, h, p, a, b]]

Timing[MultiplicativeOrder[g, p, h]]