The roughness stat is tied to the positions themselves rather than the NPCs. The positions are primarily selected due to the NPC's current level of fitness, in general rougher positions will be used by guys that are more fit. But there is also a "dominance" stat under the hood, it is not random but neither is it visible yet. There will be a screen soonish showing the various NPC stats that you know about as a character. It's not a random 1-10, but based on the guy's other attributes like whether he's a fuckboy, a chad, etc.
You can skew what types of NPCs are generated by what you wear. And yes this isn't really described yet, but it's how the game works. Wear sluttier outfits, and the guys that approach you will be more likely to be fuckboys and jerks. Whereas if you wear cute / stylish / casual clothing, you'll be approached by guys who have nicer personalities.
Again, the game works based on logic, rather than pure RNG, but it is not really communicated yet, so it *seems* like RNG. Well, there is randomness, but it is skewed toward different values based on your character's behavior.