We study semirandom k-colourable graphs made up as follows. Partition the vertex set V = {1, . . ., n} randomly into k classes V1, . . ., Vk of equal size and include each Vi–Vj-edge with probability p independently (1 ≤ i < j ≤ k) to obtain a graph G0. Then, an adversary may add further Vi–Vj-edges (i≠j) to G0, thereby completing the semirandom graph G = G*n,p,k. We show that if np ≥ max{(1 + ϵ)klnn, C0k2} for a certain constant C0>0 and an arbitrarily small but constant ϵ>0, an optimal colouring of G*n,p,k can be found in polynomial time with high probability. Furthermore, if np ≥ C0max{klnn, k2}, a k-colouring of G*n,p,k can be computed in polynomial expected time. Moreover, an optimal colouring of G*n,p,k can be computed in expected polynomial time if k ≤ ln1/3n and np ≥ C0klnn. By contrast, it is NP-hard to k-colour G*n,p,k With high probability if .