Random spanning trees of a graph $G$ are governed by a corresponding probability mass distribution (or law), $mu$, defined on the set of all spanning trees of $G$. This paper addresses the problem of choosing $mu$ in order to utilize the edges as fairly as possible. This turns out to be equivalent to minimizing, with respect to $mu$, the expected overlap of two independent random spanning trees sampled with law $mu$. In the process, we introduce the notion of homogeneous graphs. These are graphs for which it is possible to choose a random spanning tree so that all edges have equal usage probability. The main result is a deflation process that identifies a hierarchical structure of arbitrary graphs in terms of homogeneous subgraphs, which we call homogeneous cores. A key tool in the analysis is the spanning tree modulus, for which there exists an algorithm based on minimum spanning tree algorithms, such as Kruskals or Prims.