One thing to consider is the timing of the green,yellow and red lights.
For example the green and red lights may be on the same length of time, while the yellow is only on for a short time. Another thing to consider is that when the East/West is red the North/South is green.
I once did a simple one with a 555 timer as a clock driving a 4017 counter
with some outputs or'd for the red and green and a single output going to the yellow.
If you are going to be realistic and have traffic sensors, then a uprocessor is probably the best way to go.
The LED traffic Light circuit controls 6 LEDs (red, yellow and green) for both north/south directions and east/west directions. The timing sequence is generated using a CMOS 4017 decade counter and a 555 timer. Counter outputs 1 through 4 are wire ORed using 4 diodes so that the (Red - North/South) and (Green - East/West) LEDs will be on during the first four counts. The fifth count (pin 10) illuminates (Yellow - East/West) and (Red - North/South). Counts 6 through 9 are also wire ORed using diodes to control (Red - East/West) and (Green - North/South). Count 10 (pin 11) controls (Red - East/West) and (Yellow - North/South). The time period for the red and green lamps will be 4 times longer than for the yellow and the complete cycle time can be adjusted with the 47K resistor. The eight 1N914 diodes could be subsituted with a dual 4 input OR gate (CD4072).