  We provide a self-contained introduction to random matrices. While some
applications are mentioned, our main emphasis is on three different approaches
to random matrix models: the Coulomb gas method and its interpretation in terms
of algebraic geometry, loop equations and their solution using topological
recursion, orthogonal polynomials and their relation with integrable systems.
Each approach provides its own definition of the spectral curve, a geometric
object which encodes all the properties of a model. We also introduce the two
peripheral subjects of counting polygonal surfaces, and computing angular
integrals.
