It really does depends on what you want to measure afterwards. EDTA and citrate remove calcium, which most coagulation factors need. Heparin activates antithrombin thereby inhibiting coagulation by inhibiting thrombin. Heparin bound to AT also inhibits FXa.
EDTA is most often used when you want to do hematological tests (red and white blood cell count, Hb, blood group), citrate for example damages cells so won't we useful.
Heparin is used for clinical chemistry tests such as cholesterol, CRP, hormones etc. It interferes with PCR, so if you want to do that use EDTA.
Citrate is used when you want to do coagulation tests, because it's effect is relatively easy to reverse by adding Ca2+. EDTA and heparin influences tests such as the PT and APTT (are prolonged using those anticoagulants), and FV, VIII, Protein C and S, VWF, D-dimer measurements. Making it difficult to interpret the results.