  A simple random walk on a graph is a sequence of movements from one vertex to
another where at each step an edge is chosen uniformly at random from the set
of edges incident on the current vertex, and then transitioned to next vertex.
Central to this thesis is the cover time of the walk, that is, the expectation
of the number of steps required to visit every vertex, maximised over all
starting vertices. In our first contribution, we establish a relation between
the cover times of a pair of graphs, and the cover time of their Cartesian
product. This extends previous work on special cases of the Cartesian product,
in particular, the square of a graph. We show that when one of the factors is
in some sense larger than the other, its cover time dominates, and can become
within a logarithmic factor of the cover time of the product as a whole. Our
main theorem effectively gives conditions for when this holds. The techniques
and lemmas we introduce may be of independent interest. In our second
contribution, we determine the precise asymptotic value of the cover time of a
random graph with given degree sequence. This is a graph picked uniformly at
random from all simple graphs with that degree sequence. We also show that with
high probability, a structural property of the graph called conductance, is
bounded below by a constant. This is of independent interest. Finally, we
explore random walks with weighted random edge choices. We present a weighting
scheme that has a smaller worst case cover time than a simple random walk. We
give an upper bound for a random graph of given degree sequence weighted
according to our scheme. We demonstrate that the speed-up (that is, the ratio
of cover times) over a simple random walk can be unbounded
