We study semirandom k-colourable graphs made up as follows. Partition the vertex set V = {1,..., n} randomly into k classes V-1,..., V-k of equal size and include each V-i-V-j-edge with probability p independently (1 <= i < j <= k) to obtain a graph G(0). Then, an adversary may add further V-i-V-j-edges (i = j) to G(0), thereby completing the semirandom graph G = G(n,p,k)*. We show that if np >= max{(1 + epsilon)k ln n, C(0)k(2)} for a certain constant C-0 > 0 and an arbitrarily small but constant e > 0, an optimal colouring of G* can be found in polynomial time with high probability. Furthermore, if np >= C-0 max {k ln n, k(2)}, a k-colouring of G(n,p,k)(*) can be computed in polynomial expected time. Moreover, an optimal colouring of G* can be computed in expected polynomial time if k <= ln(1/3) n and np >= C(0)k ln n. By contrast, it is NP-hard to k-colour G(n,p,k)(*) w.h.p. if np <= (1/2 - epsilon)k ln(n/ k).