Most t-shirts are cotton, and for plant fibers you need to use sulfate dyes. (Animal fibers need acid dyes; and dyes can also be made from nature.) I found these dyes (and dye fixative) at Walmart, in both the laundry and sewing aisles.
Sulfate dyes and dye fixative
A kitchen scale
Gloves (that you don't use for cooking or cleaning)
A pot/bucket (that you don't use for cooking)
Hot and/or boiling water
1) Remove the unusable parts of the t-shirt- the bottom hem and everything above the armpits.
2) Weight the t-shirt that you will be dyeing. Follow the directions on your dye for how much dye to use per fabric weight. If you are going to dye more than one at a time, make sure that the pot/bucket you will be using is spacious enough for all the fabric to move around freely.
4) Fill your pot/bucket with very hot water. I filled mine halfway with hot water and the rest of the way with boiling water. The hotter your water, the more colorful your success will be. (Since I was using a plastic bucket, I couldn't heat it directly on the stove.) Add the appropriate amount of dye and dye fixative (according to the weight of your t-shirt). Using gloves, add your t-shirt to the dye bath. Check it after 15 minutes. If it hasn't soaked up enough color, then wait longer, up to an hour total.
5) Soak the dyed t-shirt in lukewarm water for a few minutes to take out the excess color. This will prevent your yarn from bleeding in the laundry later on.
6) Let it dry.
I dyed the yellow shirt by itself. The two reddish-pink shirts I dyed together. My bucket might have been too crowded for two shirts, because one of them came out less red than the other.
There was also a brownish-gray shirt that I soaked in the red dye, and it came out with a pinkish tint.
Next, I am planning to make some aqua, bright green, and purple. I might also try dyeing shirts that I have already cut, although that could become a tangled mess.
Get your t-shirts the color you want, and in Part 2 I will demonstrate how to turn them into yarn.