We discuss how two techniques, based on (1) lattice statics/lattice dynamics simulations and (2) Monte Carlo methods may be used to calculate the thermodynamic properties of solid solutions and highly disordered systems. The lattice statics/lattice dynamics calculations involve a full free-energy structural optimization of each of a number of configurations, followed by thermodynamic averaging. The Monte Carlo simulations include the explicit interchange of cations and use the semigrand canonical ensemble for chemical potential differences. Both methods are readily applied to high pressures and elevated temperatures without the need for any new parameterization; at agreement between the two techniques is better at high pressures where anharmonic terms are smaller. Vibrational contributions to thermodynamic quantities of mixing are examined. A range of examples, including binary oxides, garnets and carbonates, are used to illustrate the methods.