You do indeed have a race condition. This is because you are locking Me, so each object is locking itself, not some shared object. So:
1) Don't use
2) Don't use
3) Add a shared object to
Private Shared _Lock As New Object()<br />
4) In the <code>Random
Note: I don't do VB, so you might have to fix the syntax.