A 21-year-old man has been charged in what police are calling an unprovoked attack outside a downtown Edmonton shelter that left one man dead.