Beets release that red dye when you cut them and it mixes with the other ingredients, so the best thing is to isolate them a bit. You can cook them and let them cool completely before adding them, then put them in a separate container with a bit of vinegar or oil so the color gets "sealed." That way when you add them to the salad at the last minute, they won't stain as much. Another option is to peel and cut them, then let them sit for a while in a bowl with a splash of olive oil and vinegar, like you're marinating them - that creates a kind of barrier that stops them from releasing so much red liquid.
If you want them not to stain anything at all, you can also try buying canned beets that are already cooked and drained, then rinse them in cold water to get rid of the excess red liquid. Dry them well with paper towels before adding them. And here's a trick that works pretty well: prepare the salad first without the beets, dress everything, then add the beets right when you're about to eat. That way they're in contact with the other ingredients for much less time and there's no time for them to stain too much.