First of all: there should be an Erasmus coordinator in your home institution. He or she will be able to answer these questions in more detail.
I'll try to answer your questions. However, I am not an expert, so please somebody correct me if I got something wrong.
When an undergraduate student go from his university to a host university, who pays the fee?
I think the Erasmus programme, that is, essentially the European Union. That being said, for you as participant it should make little practical difference who actually pays for your grant in the end.
How the limits are set? Many students are interested to go to Oxford or Cambridge (generally famous university), but a few wants to go to small universities.
I think you misunderstand how Erasmus works. First of all, your home university needs to have a specific partnership with the host university. If your university does not have a partnership with Oxford, well, then you can't go there via Erasmus. Those partnerships are usually bi-directional, so if you are at a very bad university, there is a chance that Oxford has little interest in associating with (and, consequently, sending their students to) your place. Secondly, each of those partnership agreements defines quotas (in both directions). Not everybody can go to Oxford simply because there are only a finite number of places for Oxford available. Afaik, the host institution decides who can go if there are more interested students than places available for any given period. In most places, assignment of students to places seems to be more or less on a first-come-first-served basis. However, I heard that at least in my alma mater most partnerships had more places than interested students, so in the end everybody could go.
That being said, in reality it's not places like Oxford that end up being more popular. Generally speaking, most students don't seem to select host universities based on the esteem of their academics, but rather based on weather and perceived coolness of the country.