There isn't actually any rotation. And most definitely not any predetermined pattern.
What you're all seeing is pure unadulterated coincidence, caused by a lot of internal/backend stuff intersecting at the right time.

Anybody that's ever even bothered to try (or learn) doing something random in a program will tell you that there's actually a loooooooooooooooong mathematical calculation done, with initial data gathered from some supposedly random place in your operative system, which is used to return the pseudo-random values you asked for.

These values are usualy decimal numbers that go from 0 to 1 (e.g.: 0.947104038462357230439), which then is multiplied by your target range to get a random integer.
Other implementations just grab random bytes (up to the amount needed for the value type you requested) and perform binary shifting and operations on the bytes to get you the pseudo-random.

The thing is that, sometimes, this results in very similar data being used for consequent fetches (well, consequent for you, as the server has probably done some few hundred thousands of RNG fetches, both for other players and for internal functionalities, between your two clicks), which results in very close values.
It doesn't help that a typical RNG fetch for this game is only in the (1,6) range, or (1,6)->(1,100) for gachas/chances, as that means that out of 4k billion random number you can get from the RNG (that's the posible values of an Integer in Java), they all get smushed up into 100 possible results at best (1 for each % in the rarity chance table). Bottom line? Your RNG could have gotten anything from 0 to 42,949,673 and still count as "lowest 1%" (a.k.a. "Definitely a N-Rarity Card")