Sparse code multiple access (SCMA), as a code-domain non-orthogonal multiple access (NOMA) scheme, has received considerable research attention for enabling massive connectivity in future wireless communication systems. In this paper, we present a novel codebook (CB) design for SCMA based visible light communication (VLC) system, which suffers from shot noise. In particular, we introduce an iterative algorithm for designing and optimizing CB by considering the impact of shot noise at the VLC receiver. Based on the proposed CB, we derive and analyze the theoretical bit error rate (BER) expression for the resultant SCMA-VLC system. The simulation results show that our proposed CBs outperform CBs in the existing literature for different loading factors with much less complexity. Further, the derived analytical BER expression well aligns with simulated results, especially in high signal power regions.