Line an 8x8x2 inch baking pan with foil, extending the foil over the edges of the pan; set aside.
Butter the sides of a 2-quart heavy saucepan. In the saucepan, combine the sugar, evaporated milk, and peanut butter. Cook and stir over medium high heat until the mixture boils (about 10 minutes). Reduce the heat to medium, continue cooking, stirring constantly, for 6 minutes.
Remove the saucepan from heat. Add the marshmallows, chocolate, peanuts (if using) and vanilla; stir until the marshmallows and chocolate have melted and the mixture is evenly combined. Beat by hand for 1 minute.
Spread the fudge evenly into the prepared pan. Score into squares while still warm. Cover and chill for 2 to 3 hours until firm.
When the fudge is firm, use the foil to lift it out of the pan. Peel off the foil and cut the fudge into squares. Store tightly in a covered container in the refrigerator for up to one month.
Notes
If you are preparing this recipe as gluten-free, just be sure to use brands of peanut butter, marshmallows and chocolate that are known to be GF.
If you'd like thicker fudge, line a 9x5-inch loaf pan with foil.
You may wish to use chunky peanut butter if you're omitting the peanuts.