We went through this last year. I posted this same question on this board and got a lot of good input from other parents - I hope you do too. My boys were 5 1/2 and 22 months at the time.
They recommend that you do not put children in the top bunk until they are 6 years old, so your oldest son should be fine. We got a very nice, sturdy wooden bunkbed and made sure the top bunk had very high sides and a rail that covered most of the length of the bed. The only opening is where the ladder goes.
We went with a twin top and a double bottom - my husband's choice because when they are older we can take the top off and already have a double bed for one of them. We were also worried about the 2 year old climbing up there. We ended up leaving the ladder off. The 5 year old can easily climb up and down by stepping on the bottom bed's headboard and climbing up. I was also a little worried about him rolling off at first, so we left the mattress form his old bed on the floor so that if he did fall off, hopefully he would fall onto it. Fortunately, he has been fine - no threat of rolling off and the other mattress is long gone.
Feel free to PM me with any questions - good luck in your decision!