South African Airways flies from Richards Bay to Johannesburg 3 times a day. Alternatively, Greyhound ZA operates a bus from Richards Bay to Johannesburg twice daily. Tickets cost $23 - $35 and the journey takes 9 h 40 min.
From Richards Bay taxi to Richards Bay airport, fly to Johannesburg airport, train to Marlboro, then train to Johannesburg. 2 h 15 min $131. From Richards Bay bus to Johannesburg. 9 h 40 min $27. From Richards Bay drive to Johannesburg. 6 h 34 min $70.