When most people use these terms they are using them interchangeably to mean the same thing, although, I suppose technically a random-effects model (more commonly a mixed-effects model) is one of a several ways that you could model hierarchical or multi-level data. As their names imply multi-level models and hierarchical models are those that typically represent a modeling of some hierarchical structure or multiple levels of nested data. For example, a student in a classroom, within a school, within a school district, within a state. Each level of nesting typically has a random component associated with it. Since different groups and the members of the groups tend to influence (and be influenced by) group membership, these data structures makes them ideally suited for random-effects modelling.
You'll find a good discussion on the history and naming of these models in the introduction (pages 5-15) of Hierarchical Linear Models: Applications and Data Analysis Methods, 2d. by Stephen Raudenbush and Anthony S. Bryk.
You are also likely to find this post, this post, and this post of value, too.