Are they allotted randomly?
And, is there an upper limit for the number of shards for a particular miner?
Generally, it is 2-3, but is there a defined upper bound? And what is the process/process in which the network is sharded?
Ethereum is not currently sharded. As we work towards a scalability solution, the state will be sharded and validators assigned to shards on a dynamic basis. Note it will be proof of stake, so no mining. The details are still very much being sorted out.