This paper presents the language Lutin and its operational semantics. This language specifically targets the domain of reactive systems, where an execution is a (virtually) infinite sequence of input/output reactions. More precisely, it is dedicated to the description and the execution of constrained random scenarios. Its first use is for test sequence specification and generation. It can also be useful for early execution, where Lutin programs can be used to simulate modules that are not yet fully developed. The programming style mixes relational and imperative features. Basic statements are input/output relations, expressing constraints on a single reaction. Those constraints are then combined to describe non deterministic sequences of reactions. The language constructs are inspired by regular expressions, process algebra (sequence, choice, loop, concurrency). The set of statements can be enriched with user defined operators. A notion of stochastic directive is also provided, in ord...