No the sharding key should not necessarily be unique (although it can be). For example the following sharding key {userID : 1, countryID : 1}
is absolutely valid for a collection which has fields (note that two elements has the same userID and countryID):
{userID : 4, countryID : 5},
{userID : 4, countryID : 9},
{userID : 1, countryID : 5},
{userID : 2, countryID : 3},
{userID : 4, countryID : 5},
{userID : 5, countryID : 4}
As far as I remember, mongo does not allow you to create sharding key only on missing key (and there was a bug about it). And also you can not change the value of the sharding key after this.
But you can even have the same field {a : 5}
across all collection and have it as a sharding key (this would be totally stupid, but you can do this).
You have to be kind of careful when choosing your sharding key, because it is big pain in the ass of changing it afterwards. So the good thing is too read for some time how to choose a sharding key.