What happens in our lives is not really good or bad, are just events that happen because of what we choose to do or not.
At the end, things are not good or bad in themselves. Those are just labels we apply to them depending on how we perceive them. And that perception is affected on many things, like what is our mood or what were our expectations.
Yes, things happen for a reason. But the reasons why those things happen, are the consequences of our actions before the event. Nothing happens just because, or as an isolated event.
What affects the outcome of any event, can range from really simple reasons to various degrees of complexity. All depends on how simple, or complex, the event leading to anything is. The amount of people participating, what or when anything is said or done. Most of the time is really hard to measure how complex any given situation is, until later on. And even if you are inside, or outside, can have an effect on how easily one can judge what's going on.
Even your world view has a great weight on how you are going to label any given situation. What for a person can be the best possible outcome, for another can be the worst possible one. Sometimes, the time when it happens can have a great effect on how the same individual judges the outcome.
At the end of the day, events and things are just that. They are not good, bad, great, sad, or any other label that could be applied. Labels are just the glass through which we view them.