선택하다 - SELECT, pick. (emphasizes selecting one out of many available options)
고르다 - PICK, select (less formal than 선택하다, and often implies a large number of choices)
정하다 - DECIDE (FOR). (emphasis not so much on many options but on making up one's mind - similar to 결정하다)
Example sentences:
- I'm not sure what to choose = 어느 걸 골라야 할지 모르겠습니다.
- You were chosen to answer the question = 질문에 답하시도록 선택되셨습니다.
- What song would you like to choose? = 어느 곡을 선택하시겠습니까? / 어느 곡으로 정하시겠습니까? / 어느 곡으로 할래?
Here are some examples that might show their usage pattern.
1. (You have several candidates in an election) Who would your choose? 누구를 선택하겠어?
2. (You have boxes of apples at a sell-off) You need to pick the good ones. 많은 사과 중에서 좋은 것들을 고르다.
3. (You are weighing three places for your summer vacation) Which one did you decide for? 어디로 가기로 정했어?
In 3, the decision process is more involved, with many factors to consider. In such cases, 결정하다 and its less formal version 정하다 are more appropriate.
Also note that, especially for 선택하다 and 정하다/결정하다, simple 하다 is used as often as these words. If the context is clearly about selecting or deciding something (which is very often the case), 하다 would mean 선택하다 or 정하다 and saying the full word would sound redundant.