When I create a character, I’ll use a bit of software to randomly select things from a list (in a file). So, I start by creating random lists of traits, hobbies, phobias, and allergies; then sort, sift the lists until I settle on something reasonable. Give ‘em a birthday, unless there’s a compelling story reason, I’ll roll the dice. Then work out from there; for instance are they married? Cheating? Single? With kids? Without? Have living family? Occupation? Favorite color? etc.... A story or two is good too. More details, the better, for a main character. (Obviously, for a side character, or just a place holder, you don’t need as much). An indicator of a good workup means you should be able to answer … “For their birthday, their best friend (name) gave them ______.”
I do lean a bit on the random pickers simply because I’ve had to create so many in my works, and this helps me make sure they each have something distinctively different. I also try to write this stuff down, because even if I don’t need to know the character has a shellfish allergy today, it could come in useful later (in my particular case, I changed it to an oyster allergy, letting me get that specific character sick w/o getting everybody else sick).
At a certain point, each character does have a bit of me in it, implicitly. However, the goal I’ve got is so that a reader can take any (mildy-complex) quotation from the story, and be able to attribute it to the proper character.
Is this perfect? Nope. I just hope it makes for a more interesting story. (btw, missing limbs can also add some flavor...where’s my machete? ).