1. A method, comprising: receiving, by a computer comprising at least one processor, information defining, for at least one state machine, a plurality of states and respective transitions between the states, wherein the plurality of states includes a first defined state that is associated with a respective plurality of outbound transition options; initializing, by the computer, based on the information defining the plurality of states and respective transitions and, in accordance with an application defining a plurality of processes, a decision engine comprising the at least one state machine; receiving, by the computer in accordance with the application, information defining at least one set of weighted choices; receiving, by the computer in accordance with the application, an indication of an occurrence of an event; executing, by the computer in accordance with the application, the decision engine to select randomly, from a set of weighted choices, a weighted choice based on the event; determining, based on the randomly selected weighted choice, the information defining the plurality of states, and the respective plurality of outbound transition options associated with the first defined state, a new state of the at least one state machine; transmitting, from the decision engine to the application, an indication of the new state that is based on the randomly selected weighted choice; and executing, by the computer in accordance with the application, a process of the application based on the new state.