A non-deterministic algorithm is an abstract computation model in which, at each step, there are multiple possible actions to choose from. This means that for any given input, there may be several different outputs depending on the choices made during execution of the algorithm.
For example, a non-deterministic algorithm could be used to generate all possible solutions to a puzzle. Rather than outputting just one solution, the algorithm would produce all possible solutions simultaneously.