  We consider the task of assigning unique integers to a group of processes in
an asynchronous distributed system of a total of $n$ processes prone to crashes
that communicate through shared read-write registers. In the Renaming problem,
an arbitrary group of $k\le n$ processes that hold the original names from a
range $[N]=\{1,\ldots,N\}$, contend to acquire unique integers in a smaller
range $[M]$ as new names using some $r$ auxiliary shared registers. We give
number of wait-free renaming algorithms, in particular an adaptive one having
$M=8k-\lg k-1$ as a bound on the range of new names that operates in $O(k)$
local steps and uses $r=O(n^2)$ registers. As a lower bound, we show that a
wait-free solution to Renaming requires $1+\min\{k-2,\lfloor\log_{2r}
\frac{N}{M+k-1}\rfloor\}$ steps in the worst case. We apply renaming algorithms
to obtain solutions to Store&Collect problem, which is about a group of $k\le
n$ processes with the original names in a range $[N]$ proposing individual
values (operation Store) and returning a view of all proposed values (operation
Collect), while using some $r$ auxiliary shared read-write registers. We
consider a problem Mining-Names, in which processes may repeatedly request
positive integers as new names subject to the constraints that no integer can
be assigned to different processes and the number of integers never acquired as
names is finite in an infinite execution. We give two solutions to Mining-Names
in a distributed system in which there are infinitely many shared read-write
registers available. A non-blocking solution leaves at most $2n-2$ nonnegative
integers never assigned as names, and a wait-free algorithm leaves at most
$(n+2)(n-1)$ nonnegative integers never assigned as names.
