In this paper1, we prove existence of optimal complementary dual codes (LCD codes) over large finite fields. We also give methods to generate orthogonal matrices over finite fields and then apply them to construct LCD codes. Construction methods include random sampling in the orthogonal group, code extension, matrix product codes and projection over a self-dual basis.