How do Omegle/Chatroulette match the next random stranger to talk with?
Chatroulette uses a combination of a long-standing standard (Aesop's fable, see Wikipedia for details) and a simple algorithm, with a couple of modifications, to choose random chat messages. These changes have some good implications and I'm going to show you how to use them to achieve a more robust and interesting chat room.
To demonstrate how to use the random number generator, let's take a look at some classic chatroom behavior. We'll have two strangers on a single chatroom. Each of them is currently talking to two people at the same time. We will take a look at how they behave and how they interact, both from the observer's perspective and from the participant's perspective.
Observer: "This guy has the most chat on here."
Participant: "I don't know if I want to see that."
Observer: "He's on a different channel."
Participant: "That channel? That's the channel that nobody talks on here."
Observer: "No, he's on a different channel."
Participant: "I don't think I like this. It's so lonely."
Observer: "Who are you to say this? This is our channel."
Participant: "That's our channel."
Observer: "Why does he think that?"
Participant: "I think this guy is not going to
If you don't like the sound of randomness, use something more stable like dice or a computer.
But even a simple dice roll can end up as a pretty powerful random number generator in this case, given enough repetitions and repeated interaction. If Omegle/Chatroulette is doing something similar to that, and the conversation is being tracked by a central authority with an easy-to-access record of the conversations being tracked, then it can be fairly certain that the conversation is being followed, if only for a short time before the conversations themselves are deleted. (As it would be the case if the conversation had just started, and was then deleted.)
So in a sense, a simple conversation tracker is a good way to store information, or an easy way to keep a record of the conversation.
But in a practical sense, even this sort of data storage is pretty fragile. You can't just give up and delete the data. If you delete a record of the conversation, the data has to be saved somewhere else, so even if someone had a bad day and deleted all of the data, it would be difficult to recover from that loss.
This is the core problem with the technology of today's chatbot-based system. If the conversation is tracked and deleted, then what happens to all of the people who are chatting? Will they be able to recover it and reconnect with their contacts?