The goal here is come up with a set of 4 NPC descriptions for each PC, then find ways to combine them as characters - that is, a rival to Ghost could be a friend to Sabine.
PC: Astralis
Relationship: friend
Position: worse than me
Arena: sports or extracurriculars
PC: Astralis
Relationship: friend
Position: worse than me
Arena: sports or extracurriculars
PC: Astralis
Relationship: crush
Position: as good as me
Arena: scholastics
PC: Astralis
Relationship: friend
Position: as good as me
Arena: scholastics
PC: Guardian Ghost
Relationship: friend
Position: better than me
Arena: sports or extracurriculars
PC: Guardian Ghost
Relationship: friend
Position: as good as me
Arena: scholastics
PC: Guardian Ghost
Relationship: crush
Position: as good as me
Arena: socializing
PC: Guardian Ghost
Relationship: friend
Position: as good as me
Arena: sports or extracurriculars
PC: Pelagos
Relationship: rival
Position: as good as me
Arena: socializing
PC: Pelagos
Relationship: rival
Position: better than me
Arena: socializing
PC: Pelagos
Relationship: friend
Position: as good as me
Arena: scholastics
PC: Pelagos
Relationship: friend
Position: as good as me
Arena: scholastics
PC: Sabine
Relationship: crush
Position: worse than me
Arena: sports or extracurriculars
PC: Sabine
Relationship: crush
Position: as good as me
Arena: sports or extracurriculars
PC: Sabine
Relationship: friend
Position: worse than me
Arena: sports or extracurriculars
PC: Sabine
Relationship: rival
Position: better than me
Arena: sports or extracurriculars
PC: Sprout
Relationship: crush
Position: as good as me
Arena: sports or extracurriculars
PC: Sprout
Relationship: friend
Position: as good as me
Arena: scholastics
PC: Sprout
Relationship: rival
Position: better than me
Arena: socializing
PC: Sprout
Relationship: friend
Position: better than me
Arena: scholastics
Method: I generated 4 NPCs for 5 PCs, making 20. I’m probably going to prune 1 each, leaving 15. Of those, ideally I’ll double up but no further. that leaves me 7-8 people. If I pick 4 boys and 4 girls from the image set, then allocate them, I think that’ll work out