Years before RadioShack introduced its popular Executive Decision Maker, Dev designed and built a similar device using the commonly available TTL logic circuits of that time. Now, decades later, Dev has updated and simplified his device using a PIC16F630 microcontroller.
When I was a student in the 1970s, I read a study that claimed that most decisions by corporate executives were no better than flipping a coin. This idea has been proven on multiple occasions in which a company acquires another, only to sell or dissolve the acquisition just a few years later at a huge loss. Another study examined spreadsheet errors and determined that decisions made on the basis of some spreadsheet calculations were actually worse than flipping a coin.
The idea that some business decisions are best left to chance has been around for more than a century. Novelty decision-making devices have taken the form of the carnival wheel of fortune, dice, or a pendulum whose tip is magnetically captured at a decision point after random swings. One of the more popular implementations was the Magic 8 Ball, the subject of US patents 2,452,730, 3,119,621, and 3,168,315 by Albert C. Carter and Abe C. Bookman issued from 1948 through 1965.[1-3] A popular electronic version that appeared around 1980 was the Tandy Executive Decision Maker, sold by RadioShack. “Executive Decision Maker” is apparently a generic term that can’t be trademarked. The only relevant trademark that I discovered was Silver Executive Decision Maker for a coin version that was in effect from 1987 through 2007.
The Tandy Executive Decision Maker cycled through six red LEDs, labeled, Definitely, Ask Again, Never, Forget It, Why Not, and Possibly. The circuitry for this device is what you would expect at that time. There was a 4017 CMOS counter that cycled through the LEDs, and a 4011 quad NAND gate, presumably wired as two multi-vibrators to clock the counter and to set the time during which the LEDs cycled. There was a beeping tone as the LEDs were cycled, and the only source of randomness was the temperature drift of the components. It was powered by a 9V battery, and the only power management was an On/Off switch. If you were unlucky enough to forget to turn it off, the battery would be depleted in about 2 days.
I actually designed and built my own decision-maker circuit a few years before the RadioShack unit was introduced. My device, designed as a gift for a scientist colleague, is shown in Figure 1. As you can see, my LED labels were less colorful but more logical than those on the RadioShack device. The circuit was designed around a 7490 counter and 555 timer chips for the clock functions, and it used an audio earpiece as a tic-tic sounder. Unlike the RadioShack device, the LEDs in my device slowed to a halt like a wheel of fortune. Other improvements over the RadioShack approach were a mode switch to select a simple yes/no answer, and the use of a miniature relay to turn the device off after a few seconds to conserve battery life. It’s likely that such features were absent from the RadioShack device to keep its cost to a little more than $10.
Advances in electronics in the several decades since I built this decision maker encouraged me to create an updated device as a retirement gift for a friend. A microcontroller, in this case, a PIC16F630, allows for better randomness and a much simplified circuit with easier power management. The circuit, shown in Figure 2, is powered by three AA or AAA batteries that have a lifetime nearly as long as their shelf life. The two-state or five-state mode is switch selected, and the device is awakened from its low-power sleep state by an interrupt generated by a change in the state of an input pin.
The printed circuit board (PCB) layout and the method used for soldering the LEDs are shown in Figure 3. Although the LEDs can also be mounted on the component side of the board, the configuration I used allowed access to the in-circuit serial programming connector in the assembled unit. Red is an obvious choice for the negative responses of No and Maybe No, as is green for Yes and Maybe Yes. Yellow would be a good choice for Don’t Know, but yellow LEDs are notoriously inefficient. I tried one, was disappointed and settled on a neutral blue.
Printed circuit board layout and the LED mounting. Device packaging was simplified by soldering the LEDs to the foil side of the board. This also allowed easy access to the in-circuit serial programming connection, which was unpopulated in the left photograph, since this was the board for a second unit.
The PIC16F630 microcontroller has a convenient interrupt-on-change (IOC) feature that allows the device to be awakened from sleep upon a change in the logic state on a pin. This feature allows an easy way to interface with the Start push button. Output connections to the LEDs and piezoelectric speakers are what you would expect, and there’s a connector for in-circuit serial programming that I used in software development.
Although high-level languages, such as the PIC Basic compiler that I used, have a built-in random number function, I usually use my own software emulation of a linear feedback shift register. The 16-bit, maximal-length, linear-feedback shift register that I used is shown in Figure 4. Such random number sources were implemented in hardware in the early days of digital electronics, and this one cycles through 65,536 pseudo-random numbers before repeating. The duration of the press of the Start switch was also used to enhance randomness.
Maximal-length, 16-bit, linear-feedback shift register. This random number source, originally implemented in hardware, is easily emulated using software.
Computer Generated Random Numbers
The executive decision maker uses computer-generated random numbers. In this case, The random number source is a maximal length 16-bit linear feedback shift register simulated in software, and its random sequence will repeat after 65,535 cycles. While that’s not a problem for a toy circuit such as this, it illustrates the idea that computer software doesn’t generate real random numbers, just a simulation of random numbers called pseudorandom numbers.
Mathematician and computer pioneer, John von Neumann, famously remarked that “Any one who considers arithmetical methods of producing random digits is, of course, in a state of sin.” What von Neumann was saying is that anything generated by an algorithm is deterministic and not really random. Cryptographic randomness is hard to attain, but many modern pseudorandom number algorithms are fairly good at simulating random number sequences.
One excellent pseudorandom number generator is the Mersenne Twister, based on a particular prime number called a Mersenne prime. The Mersenne Twister is used as the random number function in many programming languages, including PHP and Microsoft Excel. Another is the 64-bit KISS (“Keep It Simple, Stupid”) random number generator devised by George Marsaglia. Marsaglia is famous for his suite of random number tests called Diehard. There’s a more recent implementation of Diehard called Dieharder that’s hosted by Robert G. Brown of the Duke University Physics Department.
If you want “real” random numbers, you need to use a physical source of randomness. I gave an example of one of these in a previous Circuit Cellar article, “Machine Vision Random Number Generator — Using the Raspberry Pi,” Circuit Cellar, September, 2020 . An easily achieved and popular source of physical randomness is Johnson-Nyquist noise, which is the voltage noise present across a resistor at a temperature above absolute zero. Fortunately for audiophiles, this voltage is at a nanovolt level. Amplified and sampled Johnson-Nyquist noise has a random voltage value.
Another popular noise source is avalanche noise generated across a reverse-biased Zener diode. Such Zener diode noise sources work best when the reverse voltage is high. Quantum mechanics, in the form of electronic shot noise, produces random signals. One accessible source of shot noise is the dark current of the pixels of digital cameras. This dark current arises from the random generation of electrons and holes in the imaging chips. The interval between ticks of a Geiger counter is random, since the physical process of nuclear decay in unpredictable.
If your random noise source has a bias, as in “loaded” dice, there’s still a way to extract ideal randomness. John von Neumann devised a randomness extractor to produce a random bitstream from a biased bitstream in a process that’s commonly called von Neumann whitening. In this method, pairs of successive bits are taken from a biased bitstream, and these are mapped into a random stream as follows: (0,1) -> 0, (1,0) -> 1, (0,0) -> NULL, (1,1) -> NULL, the NULL meaning that the result is ignored, and you move on to the next two bits of input data.
 Circuit Cellar article, “Machine Vision Random Number Generator – Using the Raspberry Pi,” Circuit Cellar, September 2020
Albert C. Carter, “Liquid Filled Dice Agitator,” U.S. Patent No. 2,452,730, November 2, 1948.
Abe C. Bookman, “Liquid filled die agitator containing a die having raised indicia on the facets thereof,” U.S. Patent No. 3,119,621, January 28, 1964.
Abe C. Bookman, “Amusement Device,” U.S. Patent No. 3,168,315, February 2, 1965.
PUBLISHED IN CIRCUIT CELLAR MAGAZINE • AUGUST 2022 #385 – Get a PDF of the issueSponsor this Article
Dev Gualtieri received his PhD. in Solid State Science and Technology from Syracuse University in 1974. He had a 30-year career in research and technology at a major aerospace company and is now retired. Dr. Gualtieri writes a science and technology blog at www.tikalon.com/blog/blog.php. He is the author of three science fiction novels, and books about science and mathematics. See www.tikalonpress.com for details.