Sort of.
It starts out as being pure RNG on first attack (your first attack has X% chance to crit, where X = your critical strike chance).
If that attack does NOT crit, your critical strike chance is increased by some Y. This continues to increase until you crit, and Y scales off X. The higher X is, the higher Y is, so your crit chance goes up faster if you start higher. This is to prevent bad RNG from screwing over the marksman/melee carry building crit.
If the first attack DOES crit, your critical strike chance goes DOWN by some Z. Z is lower as you increase in critical strike chance, because you're supposed to crit more with higher crit chance. These equalize back to having X% when the opposite result occurs (critting after not critting, or not critting after critting).
Y = 0 when X = 0. Z = 0 when X = 100. The actual formulas probably involve a sine or a cosine, as such:
Y = A * sin(NX) + B
Z = C * cos(NX) + D
where A, B, C, D, and N are constants.
It's better than straight RNG because it's less RNG-heavy. It equalizes to whatever X your crit chance is statistically over a few attacks, not a few dozen.