If I received two blocks at the same time, which one should I choose to mine the next block? Is the situation could happend?

If true, What's the role? Is the Bitcoin pick one block randomly?
If I received two blocks at the same time, which one should I choose
  to mine the next block?


Up to you. You can take the first one. Or the smallest one. Or known by the majority of your peers. Nobody cares.

In worst case you will mine the orphan chain. But nobody cares about you in decentralized system.

In fact you should compare two chains by total work. But this algorithm gives you poor results on comparing two latest blocks with the same height.


  Is the situation could happend?


Depends on what you mean by "the same time". Sometimes the blocks with the same height happen. They came in few seconds ( up to 10-20 seconds ) one after another.


  Is the Bitcoin pick one block randomly?


You can look to the source code on github. But this does not guarantee that the mining pools use it unmodified.