I cannot provide an etymological reason for the cases the verb berauben rules. However, I have the feeling that the main cause lies in the prefix be-. Let's analyze the cases of berauben and rauben:
jemandem (Dat.) etwas (Akk.) rauben
jemanden (Akk.) einer Sache (Gen.) berauben
We can see that the prefix be- shifted the accusative case from the stolen goods to the person who is robbed. As we can read on canoo.net, this shift is one of the functions of the prefix be-. Canoo mentions another example:
jemandem (Dat.) etwas (Akk.) schenken
jemanden (Akk.) [mit etwas] beschenken.
As a rule of thumb, one can say that if a verb needs two nouns, the "thing"-y object (direct object) is in accusative case and the "person"-y object (indirect object) is in dative case, e.g.:
jemandem (Dat.) etwas (Akk.) geben/sagen/erzählen/schenken/rauben...
Now if the be- prefix shifts the "person"-y object to accusative case, the slot of the "thing"-y object has to be filled again with a different case.
I guess the dative case is not considered for this re-filling of the slot because that would result in a swap of cases (which somehow would be confusing).
The accusative case would result in a double accusative (which is not unheard of but maybe not preferred intuitively by the speakers).
So one has to find a different method to re-fill the "thing"-y slot. There aren't so many possibilities left: Preposition + noun or noun in genitive case:
In the case of beschenken the "thing"-y slot is refilled by a preposition (mit) + noun. In the case of berauben the "thing"-y slot is refilled by a genitive noun.