Well, truly RNG loot is great tool for developers, but it also has some problems. Player can be either too lucky or too unlucky. Both extremes are bad for developers. If player gets reward too soon, he loses interest. If he is unlucky - he starts being angry. Sometimes it's hard for developer to also time-gate RNG rewards in order to limit players' ability to grind them. So, player can simply "beat" RNG via making many attempts. The best solution in this case - to make loot pseudo-random. It's AI, that just gives rewards to player at certain predefined rate, no matter what, while pretending, that loot is random. For example clear sign of such system - is player being more "lucky", when he is undergeared.
In theory such system should be good for players. But sometimes things can get broken. For example AI can decide, that I need item, that I actually don't need. For example AI can assume, that I need full set of cypher gear and constantly give me belt, I still miss. But I don't need it, because I already have legendary one.