There are bitcoin wallet addresses which are actually public keys, right?
No. The address is derived from the public key. It is the RIPEMD160 hash of the SHA-256 hash of the public key.
Every public key has one private key. EDIT : this is wrong : There is actually 2^96 private key that corresponds to an address.
This actually is TRUE.
Each public key only corresponds to ONE private key.
2
96 private keys (2
256 / 2
160) do
result in the same
address (Note that address do NOT exist on a technical level) and this is NOT a security threat).
There are bitcoin address generator programs which generates random addresses.
They generate random private-/public- keys and derive the address, yes.
There is very little possibility to generate a public and private key of an already used wallet, correct?
Pretty much impossible (if there are no implementation errors).
When a user wants to create a bitcoin address, the same addres generator generates a pair of public & private keys. If another user wants to create a random bitcoin addres, the same generator algorithm can generate previous public & private keys once more.
Such a 'generator' either uses a seed to derive private keys or generates private keys itself.
A private key basically is just a really really big (random) number.
This means, if there is a software (I know actually this exists) which generates random addresses and checks their balance, there is little possibility to find a wallet with balance in it.
Practically no chance.
This can be another bitcoin stealing algorithm, right?

Something like a 'bitcoin stealing algorithm' doesn't exist.
Is there any prevention method agains random address generation?
You can't forbid someone to pick a random number, can you ?