It's entirely possible that you can have long streaks in a random string, and if you assume that the result of every game you play is kind of like flipping a coin that's biased based on the relative skill of yourself and your opponent, then yes you're going to have streaks. It's hard to quantify how long they'll be, but they will definitely happen more often than if you were asked to list your expected run of wins and losses for the same number of games.
For example, assuming that you played 1000 games with opponents selected from your ranking ± 20%*, and the results of those games were won by you with probability (your rating)/(your rating + their rating), then it's true that about half of your streaks will be of length 1, but you can still expect there to be about 30 or so runs of length 5 or longer, including potentially some very long ones (at least a few 7 or 8 length streaks, and probably one or two that are 10 or longer).
There are also likely some psychological factors involved - possibly in how you perceive your runs, because it's possible that you notice the longer runs more than the shorter ones, and possibly even conflate two long runs separated by a short one (say you win 4, lose 1, then win another 5, some part of your brain may decide that the loss "doesn't count"); but also possibly in that when you're doing poorly you unconsciously act in ways that make it more likely that you'll play worse and vice versa.
So I wouldn't rule out pure chance as being the driver for it, especially since for it to be an RNG problem it would have to somehow consistently favour one player over another across a stretch of games before switching over, which seems rather difficult to cause.
* I got these results through some basic simulation, and it looks like it doesn't actually matter how much ± your rating you go if you assume that within that spread your opponents are uniformly distributed. I haven't checked to see what happens if you apply, say, a power law to the spread of ratings.