Umumnya untuk menghasilkan angka "acak-ish" dalam perangkat keras (untuk tujuan hiburan-kelas), Anda dapat melakukan sesuatu seperti mengambil mekanisme yang agak tidak dapat diprediksi dan menggabungkannya dengan mekanisme yang dapat diprediksi, tetapi tidak jelas.
Misalnya, jika Anda memiliki penghitung yang berjalan dengan cepat, dan sampel output setiap kali pengguna menekan tombol (seperti saat memutar ulang urutan sebelumnya) yang akan agak acak, karena mereka mungkin membutuhkan waktu yang bervariasi. Tetapi seseorang yang memainkan sistem dengan menekan tombol dengan sangat cepat mungkin cenderung mendapatkan beberapa nilai yang sama berulang-ulang (meskipun jika jam berada dalam kisaran MHz yang mungkin bukan masalah realistis).
Sebaliknya, Anda dapat menggunakan Linear Feedback Shift Register (Wikipedia) yang mengumpankan fungsi kombinatorial dari keadaan saat ini register geser kembali ke inputnya, untuk menghasilkan urutan yang tidak mudah jelas bagi manusia, meskipun output untuk input yang sama sebenarnya akan sepenuhnya dapat diprediksi. Digunakan dengan sendirinya, ini juga bukan ide yang baik karena akan memberikan urutan yang sama setiap permainan dan dengan cepat diingat oleh pengguna yang berulang.
Tetapi, jika Anda menggabungkan dua metode, seperti menggunakan timer untuk mendapatkan nilai awal yang tidak dapat diprediksi, dan kemudian menggunakan register shift umpan balik linier untuk mencampurnya (atau mungkin membiarkan LFSR berlari bebas melawan jam cepat, dan mengambil sampel berdasarkan interaksi pengguna) Anda harus bisa mendapatkan sesuatu yang cukup acak untuk permainan hiburan.
Sumber lain yang bisa Anda coba adalah bit orde rendah dari konverter analog-ke-digital.
Apa pun yang Anda lakukan, Anda mungkin ingin mensimulasikannya (dan keseluruhan desain sistem Anda juga) sebelum Anda membangun sirkuit. Proyek ini cukup kompleks sehingga menggunakan FPGA kecil atau CPLD yang lebih besar mungkin bermanfaat.
Dan akhirnya ingatlah bahwa secara historis, game asli Simon ternyata menggunakan mikroprosesor awal, TMS1000. Secara umum operasi berurutan yang kompleks dapat lebih efisien dilaksanakan dengan cara itu, dengan mesin negara dipilih hanya untuk masalah yang sederhana, harus berjalan sangat cepat, atau sedang belajar pengganti untuk pekerjaan akhirnya pada masalah seperti itu.
Edit:
http://www.waitingforfriday.com/index.php/Reverse_engineering_an_MB_Electronic_Simon_game
Berisi beberapa pengamatan yang menarik, termasuk perubahan akhirnya dari TMS1000 menjadi versi yang mungkin berlabel ubahsuaian. Lebih relevan dengan pertanyaan Anda, ini menunjukkan bahwa dokumen asli menghasilkan angka acak dengan mengambil contoh penghitung gratis saat pengguna menekan tombol ;-)