The result of the following method for generating your character’s ability scores can be really good, or it can be really bad. If you roll well, you can come out way ahead, but if you roll poorly, you might generate a character who’s virtually unplayable. It is therefore important that you read the note at the end.
Start by rolling four 6-sided dice (4d6) and add up the highest three numbers. Do that six times. Create two arrays. Pick one of the arrays, checking the total ability modifier as described below. You can then change the numbers by withtrackting 2 points to add 1 point. You may not go below 3 or exceed 18 after modifying your ability scores. One of the numbers have to be below 10 to start with (without counting racial adjustments. Then assign the numbers you generated to your six ability scores. Apply your racial ability adjustments.
Before modifying your arrays or applying any ability adjustments, check the total ability modifiers. If it is lower than +4 or higher than +10 then disregard that specific array. In case both arrays fall outside of this rule, use the standard array (15, 14, 13, 12, 10, 8).