Try
df2 <- df1[,c(1, order(-unlist(df1[df1$Type=='Total',-1]))+1)]
df2
rank
df1[,c(1, match(1:3, rank(-unlist(df1[nrow(df1),-1])))+1)]
df1 <- structure(list(Type = c("alpha", "beta", "gamma", "delta", "Total"
), CA = c(2L, 1L, 6L, 8L, 17L), AR = c(3L, 5L, 2L, 1L, 11L),
OR = c(5L, 6L, 8L, 9L, 28L)), .Names = c("Type", "CA", "AR",
"OR"), class = "data.frame", row.names = c(NA, -5L))