In other macro systems (notably Lisp's), one often needs to store results into "temporary" variables which shouldn't clash with any variables in the environment where the macro is called. In Lisp, the mechanism for declaring such variables is "gensym"---basically it is a function that returns a fresh variable name that is guaranteed to be unused anywhere else.
It does this essentially by appending an increasing integer onto a variable name prefix. [This is essentially correct, but slightly a lie. Lisp has to do some symbol magic to ensure the variable can't be referred to anywhere else.]
Is there such a capability in Plain TeX?